2017-03-01 12 views
0

私はArrayAdaptersで作業しています。私は、なぜスーパーメソッド(この場合はキーワードかメソッドかどうかはわかりません)が適用され、導入された理由を理解するのにはちょっと困っています。また、なぜその中央コンストラクタの値は0ですか?アダプターはなぜスーパーメソッドを必要とするのですか?

乾杯。

public class AttractionAdapter extends ArrayAdapter<Attraction> { 

public AttractionAdapter(Context context, ArrayList<Attraction> attractions) { 
    super(context, 0, attractions); 
} 

答えて

0

これは、ArrayAdapterの要件ではありません。それは単にJavaの次のとおりです。Why call super() in a constructor?

あなた必見派生クラスのコンストラクタでコールsuper親クラスはパラメータなしのコンストラクタを持っていない場合(それ以外の呼び出しは暗黙的であり、あなたがsuper()を呼び出すために回避することができます) 。 Hereいくつかの詳細。

テストのためだけに、BaseAdapterを延長してください。コンストラクタにはパラメータがありません - >super()(実際には呼び出されますが、書き込む必要はありません)を呼び出す必要はありません。

0

これは、ArrayAdapterのコンストラクタであり、新しいAttractionAdapterを作成する場合に使用します。ほとんどの場合、スーパーに電話する必要はありません。 Java 7のドキュメントでは、スーパーの機能を調べることができます。また、0はあなたのアイテムが行く場所です。アダプターが「コピー&ペースト」してリストを作成するアイテムです。今のところ、アダプタには表示する項目がありません。

関連する問題