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; } } }