Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the differences between extending Activity and extending ListActivity?

I am using a class which extends Activity to obtain a list from an API...

In some apps which do basically the same, the devs extended ListActivity...

Which are the differences?

like image 221
BamsBamx Avatar asked Aug 15 '12 12:08

BamsBamx


2 Answers

ListActivity extends the functionality of the common android.app.Activity by providing a number of list centric features 'for-free' if you like. For example, the handling of a list entry click is neatly contained within ListActivity's onListItemClick(...) whereas if you were using a plain android.app.Activity then you would need to implement this manually with an OnClickListener and implementation.

By all accounts, if your layout contains a list then use a ListActivity/ListFragment since it is a useful extension. It does not mean your whole screen layout has to be list but a portion of it has to host a ListView widget with identifier, id="@android:id/list".

The Javadoc on the class with useful examples of how to use it can be found here.

like image 120
BrantApps Avatar answered Oct 05 '22 19:10

BrantApps


ListActivities are specially designed to be used with ListViews. It provides several helper methods like onListItemClick(), which make it easier to use a ListView in them.

You can do anything you can do in an Activity in a ListActivity.

If you want to change the layout of a ListActivity you still can with setContentView() method from Activity. As long as there is a ListView called @android:id/list somewhere in your View the ListActivity will still work.

If you're still not sure, you could always look at the source code for ListActivity (Jelly Bean code linked to) and see that it doesn't do all that much other than make your life a little easier.

like image 23
Raghav Sood Avatar answered Oct 05 '22 18:10

Raghav Sood