Srikanth Pai
Srikanth Pai

Reputation: 926

onListItemClick for dynamically changing list item

protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    int selection  = position;

    switch (selection)
    {
        case 0:
        {
            String toast=" 1 clicked";
            DisplayToast(toast);

        }
        break;
       case 1:
        {
            String toast=" 2 clicked";
            DisplayToast(toast);

        }
        break;
    }
}

This is the code I am using for my OnListItemClick() in List Activity.

My Problem is my List item is populated dynamically and hence I don't know how many items would be there in the list.

I cannot use switch statement in that case.So. How can I distinguish which item was clicked in a dynamically changing list.

Upvotes: 0

Views: 828

Answers (3)

Kenshin
Kenshin

Reputation: 111

Following is the code

String toast = " " + ++position + " clicked";
DisplayToast(toast);

Upvotes: 0

nistv4n
nistv4n

Reputation: 2535

Set an onItemClickListener like this:

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
    Toast.makeText(MainActivity.this, adapter.getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show();           
}

});

So you can get the text of your currently selected item by getItemAtPosition(position).toString().

Or if you make your own ArrayAdapter, you can implement the getItem(position) method, which can return with anything about your adapter item.

Upvotes: 1

Eddy K
Eddy K

Reputation: 874

This will get the Text from the selected textview and display it in a Toast.

protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);

    String toast= ((TextView)v).getText();
    DisplayToast(toast);
}

Upvotes: 0

Related Questions