package com.woyoli.fragments;
import com.woyoli.R;
import com.woyoli.activity.LoginActivity;
import com.woyoli.activity.MainActivity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.ListFragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MenuItemsFragment extends ListFragment implements OnClickListener {
private MenuItemsAdapter mAdapter;
private Activity mActivity;
public MenuItemsFragment(){}
public MenuItemsFragment(Activity mActivity) {
this.mActivity = mActivity;
}
// 个人中心左侧的菜单项图标
private int[] menuIcons = new int[] {R.drawable.pick, R.drawable.pick_gift,
R.drawable.indent, R.drawable.store, R.drawable.favorite, R.drawable.friends, R.drawable.more};
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.menu_list, null);
view.findViewById(R.id.btn_exit).setOnClickListener(this);
view.findViewById(R.id.user_nickname).setOnClickListener(this);
/*Bundle mBundle = getActivity().getIntent().getExtras();
String userName = mBundle.getString("userName");
if (!TextUtils.isEmpty(userName)) {
TextView mTextView = (TextView) view.findViewById(R.id.user_nickname);
mTextView.setText(userName);
}*/
return view;
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
bindData();
}
private void bindData() {
mAdapter = new MenuItemsAdapter(getActivity());
String[] menuItems = getResources().getStringArray(R.array.sliding_menu_items);
if(menuItems != null && menuItems.length > 0 ){
for (int i = 0; i < menuItems.length; i++) {
mAdapter.add(new MenuItem(menuItems[i], menuIcons[i]));
}
}
mAdapter.setSelectId(0);
setListAdapter(mAdapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
mAdapter.setSelectId(position);
if (mActivity instanceof MainActivity) {
Fragment mFragment = null;
switch (position) {
case 0:
mFragment = new PickGiftFragment();
break;
case 1:
// 还没登陆的话要Toast告诉用户先登陆
Toast.makeText(getActivity(), "请先登陆", 0).show();
mFragment = new MyGiftFragment();
break;
case 2:
Toast.makeText(getActivity(), "请先登陆", 0).show();
mFragment = new MyIndentFragment();
break;
case 3:
Toast.makeText(getActivity(), "请先登陆", 0).show();
mFragment = new GiftShopFragment();
break;
case 4:
Toast.makeText(getActivity(), "请先登陆", 0).show();
mFragment = new MyFavoritesFragment();
break;
case 5:
Toast.makeText(getActivity(), "请先登陆", 0).show();
mFragment = new MyFriendsFragment();
break;
case 6:
Toast.makeText(getActivity(), "请先登陆", 0).show();
mFragment = new MoreFragment();
break;
default:
break;
}
((MainActivity) mActivity).switchContent(mFragment);
}
}
private class MenuItem {
public String tag;
public int iconRes;
public MenuItem( String tag, int iconRes) {
this.tag = tag;
this.iconRes = iconRes;
}
}
public class MenuItemsAdapter extends ArrayAdapter<MenuItem> {
private int selectId = -1;
public MenuItemsAdapter(Context context) {
super(context, 0);
}
public void setSelectId(int selectId){
this.selectId = selectId;
notifyDataSetInvalidated();
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.menu_list_row, null);
}
ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon);
TextView title = (TextView) convertView.findViewById(R.id.row_title);
title.setText(getItem(position).tag);
// 左侧菜单设置高亮
if (position == selectId) {
int resId = 0;
switch (selectId) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
default:
break;
}
// 行的图标
if (resId > 0) {
//icon.setImageResource(resId);
}
// 如果被选中就把选中项的背景色设为高亮
convertView.setBackgroundResource(R.drawable.item_bg);
//convertView.setBackgroundColor(R.color.deep_blue);
} else {
// 行的背景色(没有被选中就设置为正常状态)
icon.setImageResource(getItem(position).iconRes);
convertView.setBackgroundResource(R.color.black);
}
return convertView;
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_exit:
// 点击了退出按钮,如果已经登陆,就退出登陆并跳到登陆界面,如果没有登陆,直接退出系统
startActivity(new Intent(getActivity(), LoginActivity.class));
getActivity().finish();
break;
case R.id.user_nickname:
// 点击了用户头像,如果没有登陆,就跳到登陆界面
startActivity(new Intent(getActivity(), LoginActivity.class));
break;
default:
break;
}
}
public void setNickName() {
}
}