我正在使用导航抽屉,我正在使用多个片段。在其中一个片段中,我必须使用菜单项进行某些操作。现在我可以在操作栏上为该片段充气菜单项但操作不执行
public class Location extends Fragment implements View.OnClickListener {
GoogleMap googleMap;
Fragment fragment;
Button arrived_mbtn;
TextView current_mtv,request_mtv;
LinearLayout btn_mlayout,journey_mlayout;
View rootView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_location, container, false);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("you are in oncreate", "dfsdfsd");
setHasOptionsMenu(true);
}
@Override
public void onDestroyView() {
// TODO Auto-generated method stub
try {
if (fragment != null) {
fragment = getFragmentManager().findFragmentById(R.id.map);
FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
ft.remove(fragment);
ft.commit();
}
} catch (Exception e) {
e.printStackTrace();
}
Thread.interrupted();
super.onPause();
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
getActivity().getMenuInflater().inflate(R.menu.menu_payment_card_detail,menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.action_settings:
Toast.makeText(getActivity(),"hello",Toast.LENGTH_SHORT);
return true;
}
return super.onOptionsItemSelected(item);
}
}
通过此代码,一个项目在操作栏上膨胀,但点击它确实显示任何东西。
答案 0 :(得分:0)
像这样改变。你没有在吐司上调用show()。
case R.id.action_settings:
Toast.makeText(getActivity(),"hello",Toast.LENGTH_SHORT).show();
答案 1 :(得分:0)
如下所示更改onCreateOptionsMenu方法。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_payment_card_detail,menu);
}
无论您对菜单项应用了什么ID,请在条件中使用该ID来检查是否单击了该菜单项。
答案 2 :(得分:0)
:
在setHasOptionsMenu(true)
方法中移动onCreateView()
;
使用inflater.inflate(R.menu.menu_payment_card_detail,menu);
onCreateOptionsMenu
方法。
这样的事情:
@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_payment_card_detail,menu);
super.onCreateOptionsMenu(menu, inflater);
}
Toast.makeText(getActivity(),"hello",Toast.LENGTH_SHORT).show();
答案 3 :(得分:0)
片段:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// set setHasOptionsMenu
setHasOptionsMenu(true);
}
答案 4 :(得分:-2)
检查父活动是否不吃所选项目,即确保父活动是否实现$http
它为您的片段项目返回false。