如何禁用Android中特定ListView项的上下文菜单

Dil*_*rla 6 android listview contextmenu

我知道之前已经问过这个问题,答复是覆盖onPrepareContextMenu()/ onCreateContextMenu().但我不明白,也没有得到任何解决方案.请帮我如何禁用特定ListView项目的上下文菜单.

Ily*_*dov 5

打开上下文菜单取决于您的逻辑.例如,在onItemClick方法(在listView中)中,您应该检查项目的内容并显示或不显示上下文菜单.我不明白,为什么这对你来说有问题?

UPDATE

public class ExampleActivity extends ListActivity {

    private ListView mListView;
    private ArrayList<String> mList = new ArrayList<String>();
    private ArrayAdapter<String> mArrayAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mArrayAdapter = new ArrayAdapter<String>(this, android.R.id.list ,mList);
        mListView = (ListView) findViewById(android.R.id.list);
        setListAdapter(mArrayAdapter);
        registerForContextMenu(mListView);

        mListView.setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView , View v,int position, long id) {
                mListView.getItemAtPosition(position); //check current item with your logic and show or don't show contextMenu
                // for example I will show
                mListView.showContextMenu(); //to show
                return true;
            }
        });
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        // add contextmenu items
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        // todo some logic...
        return super.onContextItemSelected(item);
    }
Run Code Online (Sandbox Code Playgroud)

}

可能它会帮助你......祝你好运......