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();
}