package com.partynetwork.iparty.flipmenu;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.common.UIHelper;
import com.partynetwork.iparty.assistant.AssistantPage;
import com.partynetwork.iparty.contacts.ContactsPage;
import com.partynetwork.iparty.homepage.HomePage;
import com.partynetwork.iparty.nearby.NearbyPage;
import com.partynetwork.iparty.scanqr.CapturePage;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
/**
* 侧边菜单栏
*
* @author DongCeMedia
*
*/
@SuppressLint("ValidFragment")
public class FlipMenuPage extends BaseSlidingPage implements
OnItemClickListener {
private Activity mActivity;
private ListView mListView;
private FlipMenuTopView headerView;
/** 菜单项存放的list */
private List<Map<String, Object>> mList = new ArrayList<Map<String, Object>>();
/** 菜单项名称 */
private String[] mListName;
private static final String NAME = "NAME";
/** 菜单项图标 */
private int[] mListIcon;
private static final String ICON = "ICON";
public FlipMenuPage(SlidingMenu menu) {
super(menu);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mActivity = getActivity();
initView();
initDate();
}
/**
* 初始化数据
*/
private void initDate() {
mListName = getResources().getStringArray(R.array.menu_flip);
mListIcon = new int[mListName.length];
mListIcon[0] = R.drawable.menu_flip_list_home;
mListIcon[1] = R.drawable.menu_flip_list_assistent;
mListIcon[2] = R.drawable.menu_flip_list_near;
// mListIcon[3] = R.drawable.menu_flip_list_theme;
// mListIcon[4] = R.drawable.menu_flip_list_phone;
mListIcon[3] = R.drawable.menu_flip_list_people;
mListIcon[4] = R.drawable.menu_flip_list_scan;
for (int i = 0; i < mListName.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put(NAME, mListName[i]);
map.put(ICON, mListIcon[i]);
mList.add(map);
}
headerView = new FlipMenuTopView(getActivity());
mListView.addHeaderView(headerView);
mListView.setAdapter(new MenuFlipAdapter(mActivity, mList));
mListView.setOnItemClickListener(this);
}
private void initView() {
mListView = (ListView) mActivity.findViewById(R.id.menu_flip_listview);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
BaseSlidingPage newContent = null;
switch (position) {
case 1:
newContent = new HomePage(slidingMenu);
break;
case 2:
newContent = new AssistantPage(slidingMenu);
break;
case 3:
newContent = new NearbyPage(slidingMenu);
break;
case 4:
newContent = new ContactsPage(slidingMenu);
break;
case 5:
newContent = new CapturePage(slidingMenu);
// 打开扫描界面扫描条形码或二维码
UIHelper.showCapturePage(mActivity);
break;
default:
break;
}
if (newContent != null) {
switchFragment(newContent);
}
}
private void switchFragment(BaseSlidingPage fragment) {
if (getActivity() == null) {
return;
}
if (getActivity() instanceof Main) {
Main fca = (Main) getActivity();
fca.switchContent(fragment);
}
}
@Override
protected int initPage() {
return R.layout.menu_flip;
}
@Override
public void onResume() {
super.onResume();
if (headerView != null) {
headerView.onResume();
}
}
private class MenuFlipAdapter extends ArrayAdapter<Map<String, Object>> {
private Context mContext;
public MenuFlipAdapter(Context context,
List<Map<String, Object>> objects) {
super(context, 0, objects);
mContext = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Map<String, Object> item = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(
R.layout.menu_flip_item, null);
TextView textView = (TextView) convertView
.findViewById(R.id.menu_flip_listitem_text);
ImageView imageView = (ImageView) convertView
.findViewById(R.id.menu_flip_listitem_img);
textView.setText(item.get(NAME).toString());
imageView.setImageResource(Integer.parseInt((item.get(ICON)
.toString())));
}
return convertView;
}
}
}