What are the differences between extending Activity and extending ListActivity?

前端 未结 4 1726
眼角桃花
眼角桃花 2021-02-14 03:47

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 t

相关标签:
4条回答
  • 2021-02-14 04:12

    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.

    0 讨论(0)
  • 2021-02-14 04:16

    Extending from the ListActivity you agree with the contract that in the layout of your activity a ListView component will be available.

    Your ListView component should have the id: @android:id/list

    The ListView class provides convenient methods for working and manipulating the ListView

    0 讨论(0)
  • 2021-02-14 04:18

    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.

    0 讨论(0)
  • 2021-02-14 04:24

    Also, in a regular Activity you can use the code below in onCreate to hide the app titlebar. It seems that you can't do the same in a ListActivity. (learned this the hard way)

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_list);
    // The rest of the content of onCreate
    
    0 讨论(0)
提交回复
热议问题