如何在启动对话框的列表视图中获取元素的位置

时间:2014-06-17 18:17:00

标签: android listview dialog

我有一个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)元素中获取文本,但在对话框关闭后我不知道该在哪里继续。

1 个答案:

答案 0 :(得分:0)

将位置存储在某个位置的变量中,可以是在“活动”级别,也可以是在对话框内部(使用自定义对话框)。然后在调用dismiss时使用该变量。