Reputation: 926
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
Reputation: 111
Following is the code
String toast = " " + ++position + " clicked";
DisplayToast(toast);
Upvotes: 0
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
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