长按listview弹出选项列表
写APP的时候,
一直想要有一个效果就是,
长按然后可以弹出一个菜单,
来选择自己是进行删除或是修改操作,
在这里我使用了Menu菜单组件——上下文菜单
效果图如下:
在MainActivity.java中代码如下:
1 public class MainActivity extends AppCompatActivity { 2 3 //ListView 4 private List<A> accountList=new ArrayList<A>();//其中A为自己创建的一个类 5 private ListView listView=null; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main); 11 12 //ListView 13 14 AccountAdapter adapter=new AccountAdapter(MainActivity.this,R.layout.item,accountList); 15 listView=findViewById(R.id.main_lv);//绑定listview 16 listView.setAdapter(adapter);//设置adapter 17 18 //给当前View注册上下文菜单. 19 this.registerForContextMenu(listView); 20 21 } 22 @Override 23 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){ 24 menu.add(1,1,1,"修改"); 25 menu.add(1,2,1,"删除"); 26 } 27 @Override 28 public boolean onContextItemSelected(MenuItem item){ 29 switch (item.getItemId()){ 30 case 1: 31 Toast.makeText(this, "点击修改", Toast.LENGTH_SHORT).show(); 32 break; 33 case 2: 34 Toast.makeText(this, "点击删除", Toast.LENGTH_SHORT).show(); 35 } 36 return super.onContextItemSelected(item); 37 } 38 @Override 39 /** 40 * 关闭上下文菜单触发此方法 41 */ 42 public void onContextMenuClosed(Menu menu){ 43 Toast.makeText(this, "关闭上下文菜单", Toast.LENGTH_SHORT).show(); 44 } 45 }
其他布局代码便不展示了
关于Menu菜单组件(选项菜单,上下文菜单,子菜单)
详情可见博客:https://www.cnblogs.com/lichenwei/p/3963358.html