package pyp.navigation.main.menu; import java.util.ArrayList; import java.util.HashMap; import pyp.navigation.R; import pyp.navigation.association.AssociationFragment; import pyp.navigation.home.HomeFragment; import pyp.navigation.main.MainActivity; import pyp.navigation.map.MapFragment; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; /** * @Title: LeftMenuFragment * @Description: 左菜单栏 - 仿天天动听菜单 * @author qsuron * @date 2014-7-28 * @email admin@qiushurong.cn */ public class LeftMenuFragment extends Fragment implements OnItemClickListener, OnClickListener{ private View parentView; private MainActivity parentActivity; private GridView mGridView; private ImageView mImageView_avatar; private TextView mTextView_exit; @Override public void onAttach(Activity activity) { super.onAttach(activity); parentActivity = (MainActivity) activity; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { parentView = inflater.inflate(R.layout.main_slidingmenu, null); mGridView = (GridView) parentView.findViewById(R.id.main_slidingmenu_gridview); mImageView_avatar = (ImageView) parentView.findViewById(R.id.main_slidingmenu_head_avatarframe_avatar); mTextView_exit = (TextView) parentView.findViewById(R.id.main_slidingmenu_bottom_exit); return parentView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); /***************** * 初始化菜单按钮 * *****************/ //从配置文件读取菜单按钮 String[] menu_left_item_icon = getResources().getStringArray(R.array.menu_left_item_icon); String[] menu_left_item_title = getResources().getStringArray(R.array.menu_left_item_title); ArrayList<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>(); if(menu_left_item_title.length!=menu_left_item_icon.length) Log.i("qsuron", "配置文件出错 - Array.xml"); //遍历数组,放到list<map<String,Object>>中 for(int i=0;i<menu_left_item_title.length;i++) { HashMap<String, Object> map = new HashMap<String, Object>(); int resId = getResources().getIdentifier(menu_left_item_icon[i], "drawable", "pyp.navigation"); map.put("icon", resId); //添加图像资源的ID map.put("title", menu_left_item_title[i]); //按序号做ItemText list.add(map); } //用适配器为GridView设置内容 SimpleAdapter sa= new SimpleAdapter( parentActivity,list, R.layout.main_slidingmenu_gridview_item, new String[]{"icon","title"}, new int[]{ R.id.main_slidingmenu_gridview_item_image, R.id.main_slidingmenu_gridview_item_text}); mGridView.setAdapter(sa); /************************** * 初始化所有按钮的监听事件 * **************************/ mGridView.setOnItemClickListener(this); mImageView_avatar.setOnClickListener(this); mTextView_exit.setOnClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //具体序号要参考 array.xml 中设置的顺序 switch (position) { case 0: Log.i("qsuron", "主页"); parentActivity.changeFragment(HomeFragment.class.getName()); break; case 1: Log.i("qsuron", "社团"); parentActivity.changeFragment(AssociationFragment.class.getName()); break; case 2: Log.i("qsuron", "地图"); parentActivity.changeFragment(MapFragment.class.getName()); break; case 3: Log.i("qsuron", "课程表"); Toast.makeText(this.getActivity(), "课程表开发中", Toast.LENGTH_SHORT).show(); break; default: Log.i("qsuron", "技术人员不要命开发中..."); Toast.makeText(this.getActivity(), "技术人员不要命开发中...", Toast.LENGTH_SHORT).show(); } } @Override public void onClick(View v) { switch(v.getId()) { case R.id.main_slidingmenu_head_avatarframe_avatar: Log.i("qsuron", "登录-技术人员不要命开发中..."); Toast.makeText(this.getActivity(), "登录-技术人员不要命开发中...", Toast.LENGTH_SHORT).show(); break; case R.id.main_slidingmenu_bottom_exit: Log.i("qsuron", "退出程序"); parentActivity.finish(); default: Log.i("qsuron", "不存在此监听事件"); } } }