package com.dashiye.airheyuan.activity; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONObject; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.LinearLayout; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.Tab; import com.actionbarsherlock.app.ActionBar.TabListener; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.dashiye.airheyuan.BaseApplication; import com.dashiye.airheyuan.R; import com.dashiye.airheyuan.adapter.ArticleAdapter; import com.dashiye.airheyuan.api.Article; import com.dashiye.airheyuan.api.impl.ArticleFunctions; import com.dashiye.sync.http.AsyncHttpClient; import com.dashiye.sync.http.AsyncHttpResponseHandler; import com.dashiye.sync.http.RequestParams; import com.dashiye.utils.CacheHelper; import com.dashiye.widget.RefreshListView; public class NewsActivity extends SherlockFragmentActivity { private static final String CACHE_TAG = "article"; private ViewPager mViewPager; private ViewPagerAdapter mAdapter; private ActionBar mTabBar; @Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.Theme_Sherlock); // Used for theme switching in samples super.onCreate(savedInstanceState); setContentView(R.layout.layout_news); // initToolBar(0); mViewPager = (ViewPager) findViewById(R.id.viewpager); mTabBar = getSupportActionBar(); mAdapter = new ViewPagerAdapter(this, mTabBar, mViewPager); Bundle mBundle = new Bundle(); mBundle.putInt("category", 0); mAdapter.addTab(mTabBar.newTab().setText("社会"), NewsFragment.class, mBundle); mBundle = new Bundle(); mBundle.putInt("category", 1); mAdapter.addTab(mTabBar.newTab().setText("时政"), NewsFragment.class, mBundle); mBundle = new Bundle(); mBundle.putInt("category", 2); mAdapter.addTab(mTabBar.newTab().setText("公告"), NewsFragment.class, mBundle); mBundle = new Bundle(); mBundle.putInt("category", 3); mAdapter.addTab(mTabBar.newTab().setText("县区"), NewsFragment.class, mBundle); mBundle = new Bundle(); mBundle.putInt("category", 6); mAdapter.addTab(mTabBar.newTab().setText("图片"), NewsFragment.class, mBundle); mBundle = new Bundle(); mBundle.putInt("category", 5); mAdapter.addTab(mTabBar.newTab().setText("视频"), NewsFragment.class, mBundle); mBundle = new Bundle(); mBundle.putInt("category", 4); mAdapter.addTab(mTabBar.newTab().setText("本土"), NewsFragment.class, mBundle); } private static class ViewPagerAdapter extends FragmentPagerAdapter implements TabListener, OnPageChangeListener { private Context mContext; private ActionBar mActionBar = null; private ViewPager mViewPager = null; private ArrayList<TabInfo> mTabList = new ArrayList<TabInfo>(); public ViewPagerAdapter(FragmentActivity activity, ActionBar actionbar, ViewPager viewPager) { super(activity.getSupportFragmentManager()); mContext = activity; mActionBar = actionbar; /* * mActionBar.setCustomView(getCustomView(), new LayoutParams( * LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); */ /* * mActionBar.setDisplayOptions(mActionBar.getDisplayOptions() ^ * ActionBar.DISPLAY_SHOW_HOME ^ ActionBar.DISPLAY_SHOW_TITLE, * ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); */ // mActionBar.setDisplayShowHomeEnabled(false); // mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mViewPager = viewPager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } /** Override OnPageChangeListener start **/ @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } /** Override OnPageChangeListener end **/ /** Override TabListener start **/ @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { Object tag = tab.getTag(); for (int i = 0; i < mTabList.size(); i++) { if (mTabList.get(i) == tag) { mViewPager.setCurrentItem(i); } } } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } /** Override TabListener end **/ /** Override FragmentPagerAdapter start **/ @Override public Fragment getItem(int position) { TabInfo tab = mTabList.get(position); if (tab.fragment == null) { tab.fragment = Fragment.instantiate(mContext, tab.clazz.getName(), tab.bundle); } return tab.fragment; } @Override public int getCount() { return mTabList.size(); } public void addTab(Tab tab, Class<?> clazz, Bundle bundle) { TabInfo tabInfo = new TabInfo(clazz, bundle); tab.setTag(tabInfo); tab.setTabListener(this); mTabList.add(tabInfo); mActionBar.addTab(tab); notifyDataSetChanged(); } private static final class TabInfo { private final Class<?> clazz; private final Bundle bundle; Fragment fragment; TabInfo(Class<?> clazz, Bundle bundle) { this.clazz = clazz; this.bundle = bundle; } } } }