使用Android中的上下文菜单从ListView中删除项目

时间:2014-08-08 09:52:13

标签: android listview

我的应用程序中有一个自定义列表视图,并且已动态添加了一些项目。现在我想使用上下文菜单删除项目,并要求用户选择删除选项。我不能实现这一点请帮助我解决这个问题。 这是我的代码

List<String> array = new ArrayList<String>();
    db=this.openOrCreateDatabase("Hangman",MODE_PRIVATE, null);
    c=db.rawQuery("select name from users", null);
    if(c.moveToFirst()){
        do{
            String usr=c.getString(c.getColumnIndex("name"));
            array.add(usr);
        }while(c.moveToNext());
 }
ArrayAdapter<String> adptr= new ArrayAdapter<String>(this,R.layout.row,R.id.member_name,array);
lv.setAdapter(adptr);

lv.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int pos,
            long id) {
        // TODO Auto-generated method stub
        val=lv.getItemAtPosition(pos).toString();
        //Toast.makeText(getApplicationContext(), val, 5000).show();
    }
});


    adptr.notifyDataSetChanged();
}
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)  
{  
        super.onCreateContextMenu(menu, v, menuInfo);  
        menu.setHeaderTitle("Select The Action");    
        menu.add(1,1,0, "Delete");//groupId, itemId, order, title   
}   
public boolean onContextItemSelected(MenuItem item){

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
            .getMenuInfo();


}

1 个答案:

答案 0 :(得分:1)

  1. 为删除和取消的菜单创建一个xml。
  2. onCreate中的registerForContextMenu(your-listview)
  3. onCreateContextMenu使菜单xml
  4. 膨胀
  5. onContextItemSelected实现此项并使用此项来获取项目AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

  6. 然后检查onContextItemSelected中的R.id.delete案例,如果为true,则使用info.position作为列表的索引删除数据。

  7. 希望有所帮助