creating a menu after a long click event on a list view

前端 未结 7 665
無奈伤痛
無奈伤痛 2020-12-02 07:32

I have a list view connected to a database, showing a all the entries. I want a menu to show up if the user long clicks a item in the listview(database entry), showing optio

相关标签:
7条回答
  • 2020-12-02 08:00

    First you need to register your context menu on list view.

    lv = (ListView) findViewById(R.id.list_view);
    registerForContextMenu(lv);
    

    Then, just override activity methods.

    /**
     * MENU
     */
    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
          super.onCreateContextMenu(menu, v, menuInfo);
          if (v.getId()==R.id.list_view) {
              MenuInflater inflater = getMenuInflater();
              inflater.inflate(R.menu.menu_list, menu);
          }
    }
    
    @Override
    public boolean onContextItemSelected(MenuItem item) {
          AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
          switch(item.getItemId()) {
             case R.id.add:
             // add stuff here
                return true;
              case R.id.edit:
                // edit stuff here
                    return true;
              case R.id.delete:
            // remove stuff here
                    return true;
              default:
                    return super.onContextItemSelected(item);
          }
    }
    

    Here is an example of menu_list.xml file (you have to put the file in the res/menu folder).

    <?xml version="1.0" encoding="utf-8"?>
    <menu
      xmlns:android="http://schemas.android.com/apk/res/android">
    
           <item android:id="@+id/add"
                  android:icon="@android:drawable/ic_menu_add"
                  android:title="@string/menu_add" />
    
          <item android:id="@+id/edit"
                  android:icon="@android:drawable/ic_menu_edit"
                  android:title="@string/menu_edit" />
    
           <item android:id="@+id/delete"
                android:icon="@android:drawable/my_icon_delete"
                 android:title="@string/menu_delete" />
    
    </menu>
    

    Hope it will help.

    0 讨论(0)
提交回复
热议问题