package com.gnod.geekr.ui.fragment; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.gnod.geekr.R; import com.gnod.geekr.app.AppConfig; import com.gnod.geekr.app.adapter.SidebarMenuAdapter; import com.gnod.geekr.app.adapter.item.SidebarItem; import com.gnod.geekr.model.AccountModel; import com.gnod.geekr.model.UserInfoModel; import com.gnod.geekr.tool.manager.AccountManager; import com.gnod.geekr.tool.manager.DrawableManager; import com.gnod.geekr.ui.activity.AccountsActivity; import com.gnod.geekr.ui.activity.CommentsActivity; import com.gnod.geekr.ui.activity.FavoritesActivity; import com.gnod.geekr.ui.activity.ProfileActivity; import com.gnod.geekr.ui.activity.SearchActivity; import com.gnod.geekr.ui.activity.SettingActivity; import com.gnod.geekr.widget.AvatarView; public class SideBarMenuFragment extends Fragment { public static final int TYPE_WEIBO_STATUS = 0; public static final int TYPE_WEIBO_AT = 1; public static final int TYPE_WEIBO_COMMENT = 2; public static final int TYPE_WEIBO_PROFILE = 3; public static final int TYPE_WEIBO_FAVORITE = 4; public static final int TYPE_WEIBO_SEARCH = 5; private SidebarMenuAdapter mAdapter; private View mBtnSetting; private OnItemClickListener mOnItemClickListener; private AccountView mAccountView; private DrawableManager mDrawableMgr; private ListView mListView; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.sidebar_list, null); } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mDrawableMgr = AppConfig.getDrawableManager(); initView(); bindView(); bindListener(); mBtnSetting.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(v.getContext(), SettingActivity.class); startActivity(intent); } }); } private void bindListener() { mAccountView.layout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), AccountsActivity.class); startActivity(intent); } }); mListView.setOnItemClickListener(itemClicked); } private int[] itemIds = new int[]{ TYPE_WEIBO_STATUS, TYPE_WEIBO_AT, TYPE_WEIBO_COMMENT, TYPE_WEIBO_FAVORITE, TYPE_WEIBO_SEARCH, TYPE_WEIBO_PROFILE }; private String[] itemNames = new String[] { "首 页", "@ 我", "评 论", "收 藏", "搜 索", "个人主页" }; private int[] itemIcons = new int[] { R.drawable.radio_timeline, R.drawable.radio_mention, R.drawable.radio_comments, R.drawable.radio_favorite, R.drawable.radio_search, R.drawable.radio_profile }; private void initView() { mAccountView = new AccountView(); mAccountView.layout = findViewById(R.id.fragment_account); mAccountView.avatar = (AvatarView) findViewById(R.id.fragment_account_avatar); mAccountView.verifiedImage = (ImageView) findViewById(R.id.fragment_account_verified_image); mAccountView.textName = (TextView) findViewById(R.id.fragment_account_name); mAccountView.textType = (TextView)findViewById(R.id.fragement_account_type); mListView = (ListView)findViewById(R.id.account_list); mBtnSetting = findViewById(R.id.layout_menu_setting); } private void bindView() { AccountModel account = AccountManager.getActivityAccount(); setAccount(account); mAdapter = new SidebarMenuAdapter(getActivity()); for(int i = 0; i < itemIds.length; i ++) { mAdapter.addGroup(new SidebarItem(itemIds[i], itemNames[i], itemIcons[i])); } mListView.setAdapter(mAdapter); } private void setAccount(AccountModel account) { mAccountView.textName.setText(account.name); mAccountView.textType.setText(account.getTypeName()); // mDrawableMgr.loadAvatar(account.iconURL, mAccountView.avatar, true); AppConfig.sImageFetcher.loadImage( account.iconURL, mAccountView.avatar, R.drawable.avatar_default); } private View findViewById(int id){ return getView().findViewById(id); } public void setOnItemClickListener(OnItemClickListener listener) { this.mOnItemClickListener = listener; } private AdapterView.OnItemClickListener itemClicked = new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { switch (itemIds[position]) { case TYPE_WEIBO_STATUS: case TYPE_WEIBO_AT: if(mOnItemClickListener != null) mOnItemClickListener.onClick(v, position); break; case TYPE_WEIBO_COMMENT: Intent metIntent = new Intent(getActivity(), CommentsActivity.class); getActivity().startActivity(metIntent); break; case TYPE_WEIBO_PROFILE: Intent intent = new Intent(getActivity(), ProfileActivity.class); AccountModel account = AccountManager.getActivityAccount(); UserInfoModel user = new UserInfoModel(); user.userID = account.uID; user.nickName = account.name; user.iconURL = account.iconURL; intent.putExtra("UserInfoModel", user); intent.putExtra("IsSelfInfo", "Self"); getActivity().startActivity(intent); break; case TYPE_WEIBO_FAVORITE: Intent favIntent = new Intent(getActivity(), FavoritesActivity.class); getActivity().startActivity(favIntent); break; case TYPE_WEIBO_SEARCH: Intent searchIntent = new Intent(getActivity(), SearchActivity.class); getActivity().startActivity(searchIntent); break; } } }; public interface OnItemClickListener { public void onClick(View v, int position); } public class AccountView { public View layout; public AvatarView avatar; public ImageView verifiedImage; public TextView textName; public TextView textType; } }