web-dev-qa-db-ja.com

AndroidのArrayAdapterとListAdapterの違いは?

ListAdapterがインターフェースであり、ArrayAdapterがクラスであることを私は知っています。したがって、ArrayAdapterのみをインスタンス化できます。コードに出会った

ListAdapter adapter = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, songNames);

しかし、私は同じことをすることができました

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, songsArray);

だから私は知りたいのですが、ListAdapterが正確に必要な場所はどこですか?

ありがとうございました

16
AnujAroshA

これはAndroidとは関係ありません。しかし、一般的なJavaの質問です。

変数の型としてListAdapterを使用する場合、インターフェイスに非常に興味があります。 ListAdapterで使用できないArrayAdapter<String>の特定のメソッドを呼び出すことに興味がない場合があります。これは主に、ビューのリストアダプタとしてアダプタを割り当てるだけだからです。

特定のメソッドを本当に呼び出す必要がある場合は、正確なタイプのArrayAdapter<String>を使用できます。

それはすべてあなたのユースケースに依存します。

25
Pierre