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が正確に必要な場所はどこですか?
ありがとうございました
これはAndroidとは関係ありません。しかし、一般的なJavaの質問です。
変数の型としてListAdapter
を使用する場合、インターフェイスに非常に興味があります。 ListAdapter
で使用できないArrayAdapter<String>
の特定のメソッドを呼び出すことに興味がない場合があります。これは主に、ビューのリストアダプタとしてアダプタを割り当てるだけだからです。
特定のメソッドを本当に呼び出す必要がある場合は、正確なタイプのArrayAdapter<String>
を使用できます。
それはすべてあなたのユースケースに依存します。