android listview 长按弹出菜单--ContextMenu并进行删除操作
16lz
2021-01-23
private List list = new ArrayList(); //为listview创建成员对象 private ListView lv; private ArrayAdapter myadapter; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_manager); list.add("first"); list.add("second"); list.add("third"); lv=(ListView)findViewById(R.id.lv); //设置Adapter myadapter=new ArrayAdapter(ManagerListActivity.this, android.R.layout.simple_list_item_1,lstQuestions); lv.setAdapter(myadapter); //设置ContextMenu,长按listitem时触发 lv.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() { @Override public void onCreateContextMenu(ContextMenu arg0, View arg1, ContextMenuInfo arg2) { // TODO Auto-generated method stub arg0.setHeaderTitle("选择操作"); arg0.add(0, 0, 0, "删除"); arg0.add(0, 1, 0, "未定"); } }); } //设置菜单内容和事件 @Override public boolean onContextItemSelected(MenuItem item) { // TODO Auto-generated method stub AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); //获取点击的item的id String id = String.valueOf(info.id); switch(item.getItemId()){ case 0: Toast.makeText(ManagerListActivity.this, id, Toast.LENGTH_SHORT).show(); /*移除list的某项数据,注意remove()里的数据只能是int,这里用了强制转换,将long转换成int*/ list.remove((int)info.id); //更新listview的数据 myadapter.notifyDataSetChanged(); return true; case 1: Toast.makeText(ManagerListActivity.this, "11", Toast.LENGTH_SHORT).show(); return true; } return super.onContextItemSelected(item); }}
持续完善
更多相关文章
- Android的jni下c与java数据互传测试代码
- android ListView内数据的动态添加与删除
- Android——百度APIstore+Json——获取新闻频道+新闻数据
- Android使用自带JSONObject解析JSON数据
- Android之数据存储-手机存储中
- 手动修改Android数据库数据
- Android批量插入数据
- Android:如何关/启 自动同步(Auto Sync )和背景数据(Background data
- android menu自定义菜单 Demo