Previous time I asked a question here I learned a lot so I guess it's worth a shot to try it again.
I am using the lazy list by Fedor from this link: Lazy load of images in ListView
It's working like a charm. BUT, Fedor is making his main class extend Activity
instead of ListActivity
. Because of this, I am no longer able to use a listItemClick listener. Eclipse declares some errors around onListItemClick()
. It works when I turn
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Intent launcher here
}
into
protected void onListItemClick(ListView l, View v, int position, long id) {
// Intent launcher here
}
But the intent launcher doesn't work. Neither does a toast notification.
When I turn the Activity
in a ListActivity
, Eclipse doesn't stagger, but my emulator gives me a force close.
How do I get
- Either
onListItemClick()
click in the activity (preferable) - Or do I transform the code into a
ListActivity
without force close?
Thanks a lot in advance.
For a non-
ListActivity
to have an item-clicked-listener for aListView
, you have to call thesetOnItemClickedListener()
on theListView
(you may need to get that usingfindViewById()
if it's coming from XML)Rather than just overriding
ListActivity
'sonListItemClickListener()
, here you'd have your invokingActivity
implementAdapterView.onItemClickedListener()
and pass it as the parameter tosetOnItemClickedListener()
.(If you read the source code for
ListActivity
(which I recommend), you'll see it just does exactly that behind the scenes by creating an internal listener object that calls your overriddenonListItemClick()
).I am writing my answer as:
Here is the code:
Reference: According to android.widget.AdapterView.OnItemClickListener , public method onItemClick() is the method invoked when an item is clicked {instead of unknown protected method onListItemClick() }