onOptionsItemselected 未在 Fragment 中使用
onOptionsItemsSelected not being used in Fragment
我正在尝试向我的 ListFragment class 中的菜单栏添加一个按钮。当我点击按钮时,什么也没有发生。 onCreateOptionsMenu
方法从未在 class 中被调用。我已尽一切努力使其正常工作,但仍然无法正常工作。有没有人有任何解决方案?
我在下面附上了我的代码:
public class FragmentZero extends ListFragment {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// use your custom layout
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout_zero, container, false);
oslist = new ArrayList<HashMap<String, String>>();
new JSONParse().execute();
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the menu items for use in the action bar
inflater.inflate(R.menu.main_fragment_zero, menu);
super.onCreateOptionsMenu(menu, inflater);
}
public boolean onOptionsItemsSelected(MenuItem item) {
// Take appropriate action for each action item click
switch (item.getItemId()) {
case R.id.action_refresh:
// check for updates action
RefreshButton();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
将 setHasOptionsMenu(true)
添加到您的 onCreateView()
方法并在 OnCreate()
中删除它。
所以这是我遇到的一个非常愚蠢的错误,感谢大家的帮助,我解决了它。
我拼写 onOptionItemSelected
错了。我在项目后添加了一个额外的 's'。
我一纠正这个问题,这个方法就开始起作用了。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh:
RefreshButton();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void RefreshButton() {
oslist = new ArrayList<HashMap<String, String>>();
new JSONParse().execute();
}
我正在尝试向我的 ListFragment class 中的菜单栏添加一个按钮。当我点击按钮时,什么也没有发生。 onCreateOptionsMenu
方法从未在 class 中被调用。我已尽一切努力使其正常工作,但仍然无法正常工作。有没有人有任何解决方案?
我在下面附上了我的代码:
public class FragmentZero extends ListFragment {
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// use your custom layout
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout_zero, container, false);
oslist = new ArrayList<HashMap<String, String>>();
new JSONParse().execute();
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the menu items for use in the action bar
inflater.inflate(R.menu.main_fragment_zero, menu);
super.onCreateOptionsMenu(menu, inflater);
}
public boolean onOptionsItemsSelected(MenuItem item) {
// Take appropriate action for each action item click
switch (item.getItemId()) {
case R.id.action_refresh:
// check for updates action
RefreshButton();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
将 setHasOptionsMenu(true)
添加到您的 onCreateView()
方法并在 OnCreate()
中删除它。
所以这是我遇到的一个非常愚蠢的错误,感谢大家的帮助,我解决了它。
我拼写 onOptionItemSelected
错了。我在项目后添加了一个额外的 's'。
我一纠正这个问题,这个方法就开始起作用了。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh:
RefreshButton();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void RefreshButton() {
oslist = new ArrayList<HashMap<String, String>>();
new JSONParse().execute();
}