我有一个listview,这个listview中的元素可以触发一个contextmenu。 之后,我可以获得触发上下文菜单的元素的位置。 (这有效)
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater m = getMenuInflater();
switch(v.getId()){
case R.id.listview: m.inflate(R.menu.series_contextmenu, menu);
break;
default: break;
}
}
在此上下文菜单中,我启动一个对话框。但是当我开始对话时,我不知道如何在列表视图中获得元素的位置,从而开始对话。
public boolean onContextItemSelected(MenuItem item) {
int position = 0;
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
position = (int) info.id;
switch(item.getItemId()){
case R.id.deleteSeries:
seriesList.remove(position);
listviewadapter.notifyDataSetChanged();
return true;
case R.id.changeSeriesName: showDialog(CHANGE_SERIESNAME_DIALOG);
// cannot continue here after dialog.dismiss()
return true;
}
return super.onContextItemSelected(item);
}
关闭对话框后,我想更改listView中元素的名称。我可以从(EditText)元素中获取文本,但在对话框关闭后我不知道该在哪里继续。
答案 0 :(得分:0)
将位置存储在某个位置的变量中,可以是在“活动”级别,也可以是在对话框内部(使用自定义对话框)。然后在调用dismiss时使用该变量。