14

我这里有点问题。它看起来很简单,我一直在寻找它的解决方案。不幸的是,我找不到任何东西。这是我的问题....我要做的是从 On item click 方法中获取列表视图中显示的字符串。

这是我的列表视图:

- lol
- hi
- waw

当我点击“lol”时,我想得到“lol”字符串.....

我应该在我的代码中输入什么?:

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参数是单击项目的视图。

假设您的项目ListViewTextViews您可以尝试:

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

使用 String val = (String)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 回答