2012-03-28 9 views
0

私は、アイテムを長押ししてコンテキストメニューを取得できるListViewを持っています。私が抱えている問題は、長押ししたListItemを判断することです。私は3列(ID、テキスト、コメント)を持っています。クリックするとID値を取得する必要があります。私はいつも、リストビューの最初の項目からIDをcacth、ContextMenu(Android)を生成した選択されたアイテム(ListView複数列内)の検出

@Override 
public boolean onContextItemSelected(MenuItem item) { 
    if (item.getTitle() == "Delete") { 
    View view = getWindow().getDecorView().findViewById(android.R.id.content); 
    //The rowId receive the ID clicked from the listview 
    rowId = ((TextView)view.findViewById(R.id.ID)).getText().toString(); 
    showDialog(0); 
    } else return false; 
    return true; 
} 

をしかし:

私はこれをやってみました。リストビューの2番目の項目をクリックすると、リストの最初のIDのみが表示されます。

助けてください。

ありがとうございます。

答えて

1

は、選択された行のインデックスを取得するには、以下のコードを使用してください -

public boolean onContextItemSelected(MenuItem item) { 
      try { 
       AdapterContextMenuInfo ctxMenuInfo; 
       try { 
        ctxMenuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); 
       } catch (ClassCastException e) { 
        return false; 
       } 

       int selectedPostion = ctxMenuInfo.position; 
} 
1

あなたが選択したビュー自体からあなたの情報を抽出したい場合は、これを試してみてください。

AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
View v = info.targetView; 
rowId = ((TextView)v.findViewById(R.id.ID)).getText().toString(); 
関連する問題