我的应用程序中有一个自定义列表视图,并且已动态添加了一些项目。现在我想使用上下文菜单删除项目,并要求用户选择删除选项。我不能实现这一点请帮助我解决这个问题。 这是我的代码
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();
}
答案 0 :(得分:1)
onContextItemSelected实现此项并使用此项来获取项目AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
然后检查onContextItemSelected中的R.id.delete案例,如果为true,则使用info.position作为列表的索引删除数据。
希望有所帮助