Vic V Vic V - 2 months ago 17
Android Question

Android: onListItemClick in Activity

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:
How do I do a 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.

Answer

A listItemClickListener is attached to a ListView. When you changed ListActivity to Activity, your class no longer has a view associated with it and thus an Activity class has no idea what to do with an onListItemClickListener.

You just have to attached a listener to your ListView:

listview.setOnItemClickListener(new OnItemClickListener(){
    @Override
    protected void onListItemClick(AdapterView<?> parent, View view, int position, long id){
        //Do stuff
    }
});
Comments