11

APIからリストを取得するためにActivityを拡張するクラスを使用しています...

基本的に同じことを行う一部のアプリでは、開発者はListActivityを拡張しました...

違いはどれですか?

4

4 に答える 4

11

ListActivityandroid.app.Activity必要に応じて、リスト中心の機能を「無料」で提供することにより、共通の機能を拡張します。たとえば、リストエントリのクリックの処理はListActivityに適切に含まれていonListItemClick(...)ますが、プレーンを使用している場合は、and実装を使用android.app.Activityしてこれを手動で実装する必要がありOnClickListenerます。

すべてのアカウントで、レイアウトにリストが含まれている場合は、便利な拡張機能であるListActivity/ListFragmentを使用します。画面レイアウト全体がリストである必要があるという意味ではありませんが、その一部は識別子が付いたListViewウィジェットをホストする必要がありますid="@android:id/list"

クラスのJavadocとその使用方法の便利な例は、ここにあります。

于 2012-08-15T12:47:39.890 に答える
3

ListActivitiesは、ListViewsで使用するために特別に設計されています。onListItemClick()のようないくつかのヘルパーメソッドを提供し、それらの中でListViewを簡単に使用できるようにします。

ListActivityのアクティビティでできることは何でもできます。

ListActivityのレイアウトを変更したい場合でも、ActivityのsetContentView()メソッドを使用できます。ビューのどこかに@android:id / listというListViewがある限り、ListActivityは引き続き機能します。

それでもわからない場合は、ListActivityのソースコード(リンクされているJelly Beanコード)をいつでも調べて、生活を少し楽にする以外にそれほど多くのことをしていないことを確認できます。

于 2012-08-15T12:45:04.090 に答える
2

あなたからの延長は、ListActivityあなたの活動のレイアウトでListViewコンポーネントが利用可能になるという契約に同意します。

コンポーネントListViewのIDは次のとおりです。 @android:id/list

ListViewクラスは、ListViewを操作および操作するための便利なメソッドを提供します

于 2012-08-15T12:48:25.980 に答える
0

また、通常では、Activity以下のコードを使用しonCreateてアプリのタイトルバーを非表示にすることができます。で同じことをすることはできないようですListActivity。(これを難しい方法で学びました)

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_list);
// The rest of the content of onCreate
于 2012-11-08T10:55:25.467 に答える