Как получить нажатую строку из listview с помощью OnItemClick?

у меня тут проблема. Это выглядит просто, и я продолжаю искать его решение. К сожалению, я ничего не могу найти. Это моя проблема.... То, что я пытаюсь сделать, это получить строку, показанную в listview из метода on item click.

Это мой listview:

- 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 ответов


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


     }});

data содержит данные вашей нажатой позиции. Делай с этим, что хочешь.


arg0 ваш AdapterView, обычно a ListView. arg2 это позиция ListView. Вы можете получить элементы от вашего адаптера:

Object item = arg0.getItemAtPosition(arg2);

в зависимости от типа вашего объекта в вашем адаптере тривиальное решение:

String value = item.toString();

на ваш слушатель просмотра выбранного элемента.

предполагая, что элементы ListView are TextViews можно попробовать:

String itemText = ((TextView) arg1).getText();

использовать строку val = (String)arg0.getItemAtPosition (arg2)