Androidでのアダプターの役割は何ですか?


123

Androidのコンテキストでアダプターがいつどこでどのように使用されるの知りたい。

Androidの開発者向けドキュメントからの情報は私には不十分であり、より詳細な分析をしたいと思います。

回答:


29

Androidアプリにリストを表示するとします。これにはListView、Android が提供するものを使用します。 ListView■実際にはデータ自体は含まれていません。これは、データが含まれていない単なるUI要素です。ListViewAndroidアダプターを使用してにデータを追加できます。

Adapterその実装がデータを提供し、そのデータの表示を制御するインターフェースです。 ListViewListView表示を完全に制御する独自のアダプタ。したがって、アダプターは、リストに表示されるコンテンツとその表示方法を制御します。

Adapterインターフェースは、にデータを通信するための様々な方法を含みますListView。を実装すると、独自のアダプタを最初から作成できますBaseAdapter

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

アダプタを定義しましょう:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • 最初のパラメーター:コンテキスト
  • 2番目のパラメーター:行のレイアウト
  • 3番目のパラメーター:TextViewデータの書き込み先のID
  • 4番目のパラメーター:データの配列

45

Androidのアダプタは基本的に、UIコンポーネントと、データをUIコンポーネントに入力するデータソース間のブリッジです。

たとえば、リスト(UIコンポーネント)は、データソース配列からリストアダプターを使用して設定されます。


21
これは、ドキュメントから入手できる情報と同じです。しかし、私は詳細な説明を求めています
Robin

25

私の理解を共有したいと思います。

これは、データソースとレイアウト(おそらくListView)の間のインターフェイスです。

類推

モバイル充電器、またはUSBケーブルの例を見てみましょう。ワイヤはアダプタと見なすことができますが、データソースとレイアウトは、それぞれソケット(プラグインポイント)とUSBポート(充電ポイント)として理解できます。

モバイル充電の場合、電源は異なります。たとえば、電源バンク、ソケット、またはラップトップから充電します。Androidで使用されるアダプターの場合も同様です。データソースは、アプリケーションの要件に応じて変更される場合があります。

つまり、Androidのアダプターはソース(例ArrayList<>:)からデータを運び、レイアウト(.xmlファイル)に配信します。


2
これまでの最高の例:Dよくできました!
Daksh Gargas

8

Androidのアダプターは、アダプタービュー(などListView)とそのビューの基になるデータの間のブリッジです。アダプターがなければ、世界はどうなっていたでしょう。

  • 垂直スクロールリストのアイテムを表示するビュー。アイテムは、ListAdapterこのビューに関連付けられたものから取得されます。

  • ListAdapterリストの個々の行のためのレイアウトを定義し、にデータを提供するListView介しsetAdapter()方法 ListView

  • Androidはいくつかの標準アダプターを提供しています。最も重要なのは ArrayAdapterおよびCursorAdapterです。

  • ArrayAdapter 配列またはリストに基づいてデータを処理できます。

  • SimpleCursorAdapter データベース関連のデータを処理できます。

4

アダプターは基本的にコンテンツの配信に使用されます。おそらくすべてのアプリケーションにある1つのアダプターはCursorAdapterです。これにより、データベースクエリからのカーソルによって指定されたコンテンツを配信できます。ListViewには、ほぼ常に何らかの種類のアダプタがあります。


7
これは、ドキュメントから入手できる情報と同じです。しかし、私は詳細な説明を求めています
Robin

@ロビン:回答の1つを「受け入れる」ことで、質問の10周年を祝ってみませんか。個人的に:1)あなたの質問は貴重であると思いました(それで私はここに巻き込みました)、2)これらの返信の多くは役に立ちました(これを含む)...および3)私はあなたが何を意味しているのか手掛かりがありませんより詳細な説明」。おそらく、それは私が「なぜ」(上記で説明したように)にもっと興味があるためです。; 私は(whichIは、「詳細な木」より(WarrenFaithの応答のような)「森」で、より興味CANドキュメントから入手します)。
投票して

4

アダプタはAdapterView、そのビューの基礎となるデータ間のブリッジとして機能します。アダプターは、データ項目へのアクセスを提供し、データセット内の各項目のビューを作成します。

アダプタは、をViewある種のデータソースに接続するスマートな方法です。一般的に、あなたのビューは次のようになりListView、データがの形で来るでしょうCursorArray。だから、アダプタは、のサブクラスとして来ますCursorAdapterArrayAdapter


2

アダプターはデータモデルを管理し、それをリストビューの個々の行に適合させます。BaseAdapterクラスを拡張します。

リストビューのすべての行は、必要に応じて複雑にすることができるレイアウトで構成されています。リストビューの一般的な行には、左側に画像があり、中央に2つのテキスト行があります。


0

アダプターは単にリストビューの概念を実現するために使用されます。データのリストを表示するだけでなく、いくつかのカスタムビューも表示します。テキストビュー(その他のビュー)の数が多いリストを使用したい場合、Androidでアダプタービューを使用する必要があります。


0

すでに複数の答えが出ていますが、違う答えを出したいと思います。

アダプタとは、そのブリッジプロバイダができることを意味します。

アダプターは、データのセットとデータを表示するAdapterViewの間のリンクです。


0

最後に、アダプターはレポートを作成するのに非常に役立ちます。一部の情報のレポートを表示したい場合は、このツールを使用してデータをビューに表示できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.