Android開発シリーズのアダプターモード

Android開発のデータソースには2つの入力モードがあり
ます。固定データの場合:strings.xmlのstring-arrayなど、android:エントリを使用して入力します。
動的データの場合:Java配列またはデータベース、アダプターを使用して入力します。

アダプターのデザインパターン:
通常、インターフェースには多くのメソッドがあり、プログラムは必ずしもすべてのメソッドを使用するわけではありませんが、実装を使用してインターフェースを実装する場合は、すべてのメソッドを書き直す必要があります。アダプターはクラスであり、上記の操作と実装を簡素化します。リスナーインターフェイス。すべてのメソッドが記述されていますが、すべてのメソッドは空です。アダプターは、オブジェクトを作成して空のメソッドを呼び出すために使用する意味がないため、抽象クラスとして定義する必要があります。利点は、再利用性/柔軟性/拡張性が高く、開くと開くの原則に準拠していることです。クローズ(オープンの拡張、変更、クローズ)。

アダプターを作成する2つの方法は次のとおりです(基本アダプター)。

//第一种写法:
//Drink为定义的饮料类,Drink.drinks为实现的Drink类对象数组
ArrayAdapter<Drink> listAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,Drink.drinks);
//找到布局中的ListView
ListView listDrinks = findViewById(R.id.list_drinks);
//填充适配器
listDrinks.setAdapter(listAdapter);

//第二种写法:利用匿名内部类实现
((ListView)findViewById(R.id.list_drinks)).setAdapter(
                new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,Drink.drinks)
);

匿名内部クラスの補足:
クラスまたはインターフェースがあれば、内部クラスを記述する簡単な方法です。ここでのクラスは、具象クラスまたは抽象クラスにすることができます。
形式:新しいクラス名またはインターフェース名(){オーバーライドメソッド;}
本質:このクラスを継承するか、このインターフェースを実装するサブクラスの匿名オブジェクトです。
匿名の内部クラスは、開発時にパラメーターとして渡されることがよくあります。

public static void main(String[] args){
    
    
	Demo d = new Demo();
	d.method(new c(){
    
    
		public void show(){
    
    
			System.out.println("AAA");
		}
	});
}

内部クラス(クラスで定義されたクラス):
アクセス機能:
内部クラスは、プライベートメンバーを含む、外側のクラスのメンバーに直接アクセスすることができ、
外側のクラスは内部クラスのメンバーにアクセスするためのオブジェクトを作成する必要があります。
の名前を外部クラス。内部クラスオブジェクトの名前name =外部クラスオブジェクト。内部クラスオブジェクト
OIoi = new O()。new I();

参考資料:
https //www.icourse163.org/learn/BFU-1205989803?tid = 1450759471&from = study#/ learn / contentモバイル開発テクノロジーに関するMOOCコース

おすすめ

転載: blog.csdn.net/langxiaolin/article/details/113881243