2011-01-25 43 views
6

イメージのGridViewレイアウトを設定しようとしています。これには、BaseAdapterクラスから新しいクラスを派生させる必要があります。私はウェブサイトdeveloper.android.comでこのチュートリアルを使用していますが、それはまだ意味を理解していません。誰かが私にBaseAdapterが何であるかを説明してもらえますか?私はAndroid開発者のウェブサイトが提供する定義を理解していません。BaseAdapterの使い方と使い方

おかげ

答えて

3

http://developer.android.com/resources/tutorials/views/hello-gridview.html

のGridViewはAdapterViewとして知られるビューのタイプのサブクラスです。これらのビューには、一般に多数の小さなビューが含まれていますが、それらのビューを提供するためにアダプタに依存しています。 BaseAdapterクラスは、AdapterView(あなたのGridView)に何を表示するかを指示するメソッドをオーバーライドするために拡張するクラスです。オーバーライドする最も重要な方法はgetView()メソッドです。このメソッドでは、グリッド上の特定の位置に表示するビューを返します。

この設定はちょっと混乱して複雑ですが、Androidの開発者はすべての最適化のためにこれを選択しました。 AdapterViewsの多くの最適化は、getViewメソッドで新しいものを作成する代わりにViewsを再利用することで得られます。これは、getViewメソッドで見ることができるconvertView引数がforのものです。 convertView == nullの場合、メソッドは新しいViewオブジェクトを作成し、高価な操作を返す必要があります。 nullでない場合、アダプタはビューを再利用できます。単にチュートリアルの例でイメージを変更するだけです。

19

アダプターは、データをビューにバインドするために使用されます。

AdapterViewその子供アダプターによって決定されている図である:AdapterViewを参照してください。

いくつかのレイアウトビューがGridViewコントロール、リストビュー、およびギャラリーのようなAdapterViewから派生します。

もちろん、AdapterViewAdapterは直接使用するのではなく、そのサブクラスの1つを使用するか、派生させます。 Adapterのサブクラスは、データを表示するためにバインドする方法を変更する追加の機能を追加する場合があります。

BaseAdapterは、アダプタの実装を簡略化するためのアダプタインターフェイスの抽象基本クラスです。独自に実装することもできますが、フレームワークにはかなり柔軟なアダプタが用意されています。いくつかの人気のアダプタは、次のとおりです。

ArrayAdapter

  • は、膨らま移入、および内の指定されたインデックスのカスタムビューを返すために、ビュー
  • オーバーライドgetView()にデータの配列をバインドしますアレイ。 getView()メソッドには、convertViewパラメータを使用して機会再利用ビューが含まれています。

CursorAdapter

  • ので、あなたは、直接それを使用するサブクラスを使用するか、派生していない(データベースカーソルなど)カーソルから抽象ビュー
  • にデータをバインドします独自の
  • 抽象メソッドnewView()を実装して、現在のカーソル位置の拡大、ポピュレーション、および目的のビューの返却を行い、抽象メソッドを実装しますbindViewは再利用されている既存のビュー..

SimpleCursorAdapter

  • を移入することが行レイアウトとカーソルの列のマッピングをとることができるCursorAdapter
  • の具体的な実装行レイアウトウィジェットへ
  • は、テキストと画像をサポートしますが、setViewTextとを使用してカスタマイズできます
  • は他のタイプをサポートし、フックを使用してバインディングをカスタマイズすることができます。クライアントはsetViewValue()メソッドを実装して、特定の行(現在のカーソル状態)とデータ "列"のインフラストラクチャを作成、ポピュレート、返すメソッドを実装します。このメソッドは "特別な"ビューとバインディングだけを定義できますが、 "通常の"バインディングのSimpleCursorAdapterの標準的な振る舞いを引き継いでいます。