package cn.eoe.app.ui; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import cn.eoe.app.R; import cn.eoe.app.biz.UserDao; import cn.eoe.app.entity.UserResponse; import cn.eoe.app.indicator.PageIndicator; import cn.eoe.app.ui.base.BaseFragmentActivity; import cn.eoe.app.utils.PopupWindowUtil; import cn.eoe.app.view.UserCollectFragment; import cn.eoe.app.view.UserIntroFragment; import cn.eoe.app.view.UserLogOutFragment; public class UserCenterActivity extends BaseFragmentActivity implements OnClickListener { private ImageView imgTitleButton; ViewPager mViewPager; TabPageAdapter mTabsAdapter; PageIndicator mIndicator; LinearLayout llGoHome; private LinearLayout loadLayout; private LinearLayout loadFaillayout; ImageView ImgLeft; ImageView ImgRight; private SharedPreferences share; private UserDao mUserDao; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mUserDao = new UserDao(this); setContentView(R.layout.user_center_activity); share = getSharedPreferences(UserLoginUidActivity.SharedName, Context.MODE_PRIVATE); initControl(); initViewPager(); } // [start]初始化 private void initControl() { ImgLeft = (ImageView) findViewById(R.id.imageview_user_left); ImgRight = (ImageView) findViewById(R.id.imageview_user_right); imgTitleButton = (ImageView) findViewById(R.id.imageview_user_title); imgTitleButton.setImageResource(R.drawable.button_user_more); imgTitleButton.setOnClickListener(new myOnClickListener()); mViewPager = (ViewPager) findViewById(R.id.user_pager); mViewPager.setOffscreenPageLimit(2); mIndicator = (PageIndicator) findViewById(R.id.user_indicator); mIndicator .setOnPageChangeListener(new IndicatorOnPageChangedListener()); llGoHome = (LinearLayout) findViewById(R.id.Linear_above_toHome); llGoHome.setOnClickListener(this); loadLayout = (LinearLayout) findViewById(R.id.view_loading); loadFaillayout = (LinearLayout) findViewById(R.id.view_load_fail); } private void initViewPager() { mTabsAdapter = new TabPageAdapter(this); mViewPager.setAdapter(mTabsAdapter); mIndicator.setViewPager(mViewPager); new ContentAsyncTask().execute(); } // [end] public class TabPageAdapter extends FragmentPagerAdapter { private ArrayList<Fragment> mFragments; public List<String> tabs = new ArrayList<String>(); private final int[] COLORS = new int[] { R.color.red, R.color.green, R.color.blue, R.color.white, R.color.black }; public TabPageAdapter(UserCenterActivity userCenterActivity) { super(userCenterActivity.getSupportFragmentManager()); mFragments = new ArrayList<Fragment>(); } public void addTab(String title, Fragment fragment) { mFragments.add(fragment); tabs.add(title); notifyDataSetChanged(); } @Override public CharSequence getPageTitle(int position) { return tabs.get(position); } @Override public Fragment getItem(int arg0) { return mFragments.get(arg0); } @Override public int getCount() { return mFragments.size(); } } public class ContentAsyncTask extends AsyncTask<String, Void, UserResponse> { @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); loadLayout.setVisibility(View.VISIBLE); } @Override protected UserResponse doInBackground(String... params) { // TODO Auto-generated method stub return mUserDao.mapperJson(share.getString( UserLoginUidActivity.KEY, "")); } @Override protected void onPostExecute(UserResponse result) { // TODO Auto-generated method stub super.onPostExecute(result); loadLayout.setVisibility(View.GONE); if (result == null) { UserLogOutFragment fragment=new UserLogOutFragment( UserCenterActivity.this,true); mTabsAdapter.addTab(getString(R.string.user_center_get_info_error),fragment ); return; } mTabsAdapter.addTab(getString(R.string.user_center_my_Collect), new UserCollectFragment(result, UserCenterActivity.this)); mTabsAdapter.addTab(getString(R.string.user_center_my_Intro), new UserIntroFragment(result)); mTabsAdapter.addTab(getString(R.string.user_center_exit), new UserLogOutFragment( UserCenterActivity.this,false)); mTabsAdapter.notifyDataSetChanged(); mViewPager.setCurrentItem(1); } } private class IndicatorOnPageChangedListener implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } @Override public void onPageSelected(int arg0) { // TODO Auto-generated method stub switch (arg0) { case 0: ImgLeft.setVisibility(8); break; case 2: ImgRight.setVisibility(8); break; default: ImgLeft.setVisibility(0); ImgRight.setVisibility(0); } } } private class myOnClickListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.imageview_user_title: new PopupWindowUtil(mViewPager).showActionWindow(v, UserCenterActivity.this, mTabsAdapter.tabs); break; } } } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.Linear_above_toHome: finish(); break; } } }