ActionBar上下文菜单

时间:2013-12-15 05:54:41

标签: java android xml

当用户点击列表视图中的项目时,我正在尝试进入Contextual ActionBar。我有这个代码。

private ActionMode.Callback mActionModeCallback = new ActionMode.Callback(){

        @Override 
        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
              MenuInflater inflater = mode.getMenuInflater();
              inflater.inflate(R.menu.contextual_action_bar, menu);
              return true;
            }

        @Override
        public void onDestroyActionMode(ActionMode mode) {

        }

        @Override
        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            switch (item.getItemId()) {
                case R.id.menu_item1:
                    return true;
                case R.id.menu_item2:
                    //close the action mode
                    //mode.finish();
                    return true;
                default:
                    mode.finish();
                    return false;
           }
        }

        @Override
        public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
            // TODO Auto-generated method stub
            return false;
        }
    };

在同一课程中我有

myListView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View v, int position, long id)
            { 

                startActionMode(mActionModeCallback);                
            }

    });     

问题是Eclipse在startActionMode中给出了一个错误:

  

Activity类型中的方法startActionMode(ActionMode.Callback)不适用于参数(ActionMode.Callback)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

由于您使用的是支持库,因此必须使用startSupportActionMode(Callback)代替startActionMode(Callback) https://developer.android.com/reference/android/support/v7/view/ActionMode.Callback.html

答案 1 :(得分:0)

您的代码没有问题,请检查这些导入

import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

并尝试再次清理和构建。