14

ここで問題が発生しました。シンプルに見え、その解決策を探し続けています。残念ながら、何も見つかりません。これは私の問題です....私がやろうとしているのは、アイテムクリックメソッドからリストビューに表示された文字列を取得することです。

これは私のリストビューです:

- lol
- hi
- waw

「笑」をクリックすると、「笑」の文字列を取得したい.....

ここに私のコードに何を入れるべきですか? :

lv = (ListView) findViewById(R.id.list_view);
lv.setOnItemClickListener(new OnItemClickListener()
{
 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
 {
    // Intent newI = new Intent(this,PDetail.class); 
     Intent newI = new Intent (Create.this, PDetail.class);
     //String sd = ((() arg1).getText()).toString();
     //newI.putExtra("x", arg2);
     startActivity (newI);
    // db.getList(arg3);

 }});
4

5 に答える 5

28
 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3)
     {
         String data=(String)arg0.getItemAtPosition(arg2);


     }});

dataクリックした位置のデータが含まれています。あなたがそれでやりたいことは何でもしてください。

于 2013-08-01T09:19:48.160 に答える
6

arg0はあなたのAdapterView、通常はListViewです。arg2での位置ListViewです。Adapter からアイテムを取得できます。

Object item = arg0.getItemAtPosition(arg2);

アダプター内のオブジェクトのタイプに応じて、簡単な解決策は次のとおりです。

String value = item.toString();
于 2013-08-01T09:21:22.550 に答える
2

リスナーのarg1パラメーターは、クリックされた項目のビューです。

ListViewあなたのアイテムがTextViewsあなたが試すことができると仮定すると:

String itemText = ((TextView) arg1).getText();
于 2013-08-01T09:17:28.300 に答える
1

文字列値を使用 = (文字列)arg0.getItemAtPosition(arg2)

于 2013-08-01T09:20:42.860 に答える
0

Kotlin の場合、これを使用します。

mListView.setOnItemClickListener{ parent, view, position, id ->
        println("Item : " +  (view as TextView).text)
    }

これは、アダプターを TextView にキャストするのではなく、それ以外の方法で膨張させた場合にのみ機能します。TextView次のようにして TextView を取得する必要があります

view.findViewById(R.id.your_textview_id)
于 2021-11-29T12:51:26.580 に答える