package com.jesse.slidingMenu; import java.util.ArrayList; import com.jesse.customLayout.LeftMenuFragmentItem; import com.jesse.makemoney.R; import android.os.Bundle; import android.app.Activity; import android.content.res.TypedArray; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ListView; public class MenuFragment extends Fragment implements OnClickListener{ private SLMenuListOnItemClickListener mCallback; private String[] mNavMenuTitles; private TypedArray mNavMenuIconsTypeArray; private LeftMenuFragmentItem item_1; private LeftMenuFragmentItem item_2; private LeftMenuFragmentItem item_3; private LeftMenuFragmentItem item_4; private LeftMenuFragmentItem item_5; private ArrayList<LeftMenuFragmentItem> itemListArray; private int position = 1; // 按下的位置 private int nowPosition = 1; // 前次按下位置 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); itemListArray = new ArrayList<LeftMenuFragmentItem>(); } // 首次绘制用户界面的回调方法,必须返回要创建的Fragments 视图UI @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.frame_left_menu, null); setViewResource(rootView); return rootView; } // 当Activity中的onCreate方法执行完后调用。 @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } // activity与fragment之间的通信 @Override public void onAttach(Activity activity) { try { mCallback = (SLMenuListOnItemClickListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnResolveTelsCompletedListener"); } super.onAttach(activity); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.item1: position = 1; break; case R.id.item2: position = 2; break; case R.id.item3: position = 3; break; case R.id.item4: position = 4; break; case R.id.item5: position = 5; break; default: break; } // 重复点击相同按钮不响应 if (nowPosition == position) return; nowPosition = position; if (mCallback != null) { mCallback.selectItem(position, mNavMenuTitles[position - 1]); } setMenuBeSelected(); } // 设置选择的item背景变化 private void setMenuBeSelected() { for (int i = 0; i < itemListArray.size(); i++) { itemListArray.get(i).setUnSelected(); } itemListArray.get(position - 1).setSelected(); } // 初始化item资源 private void setViewResource(View rootView) { item_1 = (LeftMenuFragmentItem) rootView.findViewById(R.id.item1); item_2 = (LeftMenuFragmentItem) rootView.findViewById(R.id.item2); item_3 = (LeftMenuFragmentItem) rootView.findViewById(R.id.item3); item_4 = (LeftMenuFragmentItem) rootView.findViewById(R.id.item4); item_5 = (LeftMenuFragmentItem) rootView.findViewById(R.id.item5); itemListArray.add(item_1); itemListArray.add(item_2); itemListArray.add(item_3); itemListArray.add(item_4); itemListArray.add(item_5); for (int i = 0; i < itemListArray.size(); i++) { itemListArray.get(i).setOnClickListener(this); } mNavMenuTitles = getResources().getStringArray(R.array.setting); mNavMenuIconsTypeArray = getResources().obtainTypedArray(R.array.nav_drawer_icons); for (int i = 0; i < itemListArray.size(); i++) { itemListArray.get(i).setImage(mNavMenuIconsTypeArray.getResourceId(i, -1)); itemListArray.get(i).setText(mNavMenuTitles[i]); } itemListArray.get(0).setSelected(); } /** * 左侧菜单 点击回调接口 */ public interface SLMenuListOnItemClickListener{ public void selectItem(int position,String title); } }