0

コンテキスト メニューを使用して、リストの行からテキストを取得しようとしています。これまでのところ、row.xml ファイルの ID を使用して name であるテキストを取得することができました。しかし、リストの別の行を選択すると、選択した名前ではなく、リストの最初の行に含まれる同じ名前が返されます。

 public boolean onContextItemSelected(MenuItem item)
 {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();

    if(item.getTitle()=="Get")
    {
        TextView textView = (TextView) this.findViewById(R.id.names); 
        String text = textView.getText().toString(); 

        //Then pass value retrieved from the list to the another activity 
    }
 }

行.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView 
    android:id="@+id/names"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />

<TextView 
    android:id="@+id/pNumbers"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>
4

2 に答える 2

2

それは適切な方法ではありません。AdapterContextMenuInfo.positionを使用してリスト内のデータのインデックスを取得し、そのデータを新しいアクティビティに渡す必要があります。

AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();    
switch(item.getItemId()) { // using the id is the proper way to determine the menu item
    case R.id.menu_get:
        Object data = mListAdapter.getItem(info.position);
        // do something interesting with the data
        return true;
}
于 2013-03-25T15:32:18.343 に答える
0

info.positionをテストしましたか

次に、アダプターの位置から、すべてのリスト項目データを取得できます。

于 2013-03-25T15:31:29.727 に答える