How to set onContextItemClickListener for ListView context menu?

I used the following code to set the context menu for my list. Now I want to create onContextItemClickListener for this context menu. There seems to be no such method as listview.setOnContextItemClickListener. Please help me here.

    ListView listView = new ListView(getApplicationContext());

            @SuppressWarnings("unchecked")
            ArrayAdapter listViewArrayAdapter =      new ArrayAdapter(getApplicationContext(),
                   android.R.layout.simple_list_item_1, locations);
            listView.setAdapter(listViewArrayAdapter);
            listView.setFocusableInTouchMode(true);
            listView.setOnFocusChangeListener(
                new View.OnFocusChangeListener() {
              @Override
              public void onFocusChange(View arg0, boolean arg1) {
                Log.i("SampleApp", "onFocusChanged() - view=" + arg0);
              }
            });
            listView.setOnItemClickListener( new AdapterView.OnItemClickListener() {
              @Override
              public void onItemClick(AdapterView adapterView, View view,
                  int arg2, long arg3) {
                int selectedPosition = adapterView.getSelectedItemPosition();
                Log.i("SampleApp", "Click on position"+selectedPosition);
              }
            });
            listView.setOnCreateContextMenuListener(
                    new View.OnCreateContextMenuListener() {

                  public void onCreateContextMenu(ContextMenu menu, View view,
                      ContextMenu.ContextMenuInfo menuInfo) {
                    AdapterContextMenuInfo mi = (AdapterContextMenuInfo) menuInfo;
                    menu.add(0, 0, 0, "Delete");




                  }



            });
+4
source share
1 answer

You must add:

// we register for the contextmneu        
registerForContextMenu(lv);

to register in the context menu (for example, lv is an instance of ListView), and then:

// This method is called when user selects an Item in the Context menu
 @Override
   public boolean onContextItemSelected(MenuItem item) {
      int itemId = item.getItemId();
      // do your logic here
      return true;
   }

Hope this is what you are looking for. PS: If you're interested, I wrote a post about this, look here

+1
source

Source: https://habr.com/ru/post/1538457/


All Articles