方法" onOptionsItemSelected(MenuItem item,LayoutInflater inflater,ViewGroup container)"从未使用过

时间:2015-09-18 13:26:23

标签: java android

我正在使用onOptionsItemSelected方法来过滤我的listviewes但是在声明了方法后我得到了方法从未使用过异常,我不知道如何使用这个方法。请更正我的代码。

我的编程代码如下,

   //I am getting exception here

        public boolean onOptionsItemSelected(MenuItem item,LayoutInflater inflater,ViewGroup container) {
        Log.d("onOptionsItemSelected", "yes");
        switch (item.getItemId()) {
            case R.id.all:
                displayEventInvitationList(inflater,container);
                return true;
            case R.id.event:
                displayEventList();
                return true;
            case R.id.invitation:
                displayInvitationList();
                return true;
            default:
                return super.onOptionsItemSelected(item);

        }

    }
        //method defined here
        public View displayEventInvitationList(LayoutInflater inflater, ViewGroup container) {
        context = getActivity().getApplicationContext();
        view = inflater.inflate(R.layout.chatwindow_tab, container, false);
        sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                Context.MODE_PRIVATE);
        DatabaseHelper dbHelper = new DatabaseHelper(context);
        final UserMO userMO = dbHelper.getRingeeUserData(1);
        new AsyncTask<Void, Void, List<EventMO>>() {
            @Override
            protected List<EventMO> doInBackground(Void... arg0) {
                eventMOs = gson.fromJson(eventDelegates.getAllEventFromUser(userMO, context), new TypeToken<List<EventMO>>() {
                }.getType());
                invitationMOs = gson.fromJson(eventDelegates.getAllEventForUser(userMO, context), new TypeToken<List<EventMO>>() {
                }.getType());
                List<EventMO> groupEventInvitesList = new ArrayList<>();

                for (EventMO eventMO : eventMOs) {
                    groupEventInvitesList.add(eventMO);

                }
                for (EventMO eventMO : invitationMOs) {
                    groupEventInvitesList.add(eventMO);

                }

                return groupEventInvitesList;

            }

2 个答案:

答案 0 :(得分:2)

  

我得到的方法从未使用异常

首先,这是一个警告,而不是例外。

其次,它永远不会被使用,因为没人会叫它。

也许您正在寻求实现具有不同方法签名的onOptionsItemSelected() on a Fragment。或者,如果这是一项活动,它也是offers onOptionsItemSelected(),但签名不同。如果您删除LayoutInflater inflaterViewGroup container参数,则可能会有更好的运气。

答案 1 :(得分:0)

onOptionsItemSelectedActivity(或Fragment)的方法。 你已经在其他地方确定了它。 从你定义它的地方剪切你的方法并将它粘贴到你的活动(或片段)中,这是一个级别 - 就在最后一次关闭之前}