在 ListView 上單擊每個項目時創建菜單。 我創建了兩個場景:在 Activtity 和 Fragment 上創建 ContextMenu 。 但是,它只在 Activity 上運行,而不是在 Fragment 上運行。 下面是我在 fragment 上實現的代碼:public class ContactTabFragment extends Fragment {
ListView listView;
List listContacts;
ListVaultContactsAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_contacts, container,
false);
initView(rootView);
registerForContextMenu(listView);
listContacts = VaultProviderUtil
. getListOfVaultContacts(ContactTabFragment.this
. getActivity().getApplicationContext());
adapter = new ListVaultContactsAdapter(
ContactTabFragment.this.getActivity(), listContacts);
listView.setAdapter(adapter);
return rootView;
}
private void initView(View rootView) {
listView = (ListView) rootView.findViewById(R.id.listVaultContacts);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.add(Menu.NONE, R.id.a_item, Menu.NONE,"Menu A");
menu.add(Menu.NONE, R.id.b_item, Menu.NONE,"Menu B");
menu.add(Menu.NONE, R.id.c_item, Menu.NONE,"Menu C");
menu.add(Menu.NONE, R.id.d_item, Menu.NONE,"Menu D");
menu.add(Menu.NONE, R.id.e_item, Menu.NONE,"Menu E");
menu.add(Menu.NONE, R.id.f_item, Menu.NONE,"Menu F");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.a_item:
Log.i("ContextMenu","Item 1a was chosen");
return true;
case R.id.b_item:
Log.i("ContextMenu","Item 1b was chosen");
return true;
}
return super.onContextItemSelected(item);
}
}
我正在尋找創建菜單的方法,但仍然沒有任何解決方案。 請告訴我如何解決它。 謝謝,