Question

I've got some problem here. It looks simple and i keep searching for its solution. Unfortunately, i cant find anything. This is my problem.... What i'm trying to do is to get the string showed in the listview from an On item click method.

This is my listview :

- lol
- hi
- waw

When i click "lol" i want to get the "lol" string.....

What should i put in my code here? :

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);

 }});
Was it helpful?

Solution

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


     }});

data contains your clicked position's data. Do what ever you want to do with that.

OTHER TIPS

arg0 is your AdapterView, typically a ListView. arg2 is the position in the ListView. You can get the items from your Adapter :

Object item = arg0.getItemAtPosition(arg2);

Depending on the type of your object in your adapter, a trivial solution is:

String value = item.toString();

The arg1 parameter of your listener is the clicked item's view.

Assuming that the items of your ListView are TextViews you can try:

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

use String val = (String)arg0.getItemAtPosition(arg2)

For Kotlin use this:

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

This only works if you inflated your adapter with just a TextView otherwise instead of casting it to TextView you should get your TextView by doing something like

view.findViewById(R.id.your_textview_id)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top