AndroidカスタムアダプタAdapterベースクラスBaseAdapter
3703 ワード
[b][color=red]Adapter ViewではアダプタAdapterがよく使われていますが、anroidが提供するAdapterはいくつかのフレームワークにすぎません.必要があれば、自分で必要に応じてAdapterをカスタマイズする必要があります.
Androidが提供する[color=blue][b]3種類のAdapter[/b][/color][/color][/color]には主に[color=red]ArrayAdapter SimpleAdapter SimpleCursorAdapter[/color]がある
[b]ArrayAdapterは簡単な配列アダプタである[/b]
[color=blue][b]SimpleAdapterは、義理の子Viewレイアウトをカスタマイズすることができ、画像を持つことができる[b][color/color]
[size=medium][b]SimpleCursorAdapterは主にデータベースに用いられている[b]/[size]前の2つのデータソースは一般的にString[]またはListであり、後の1つのデータソースは一般的にデータベースクエリで得られるCursorである
カスタマイズで一番多いのは[color=red]BaseAdapter[/color]
継承[color=red][b]BaseAdapter[/b][/color],具体的には複写する方法は4つあります.
もう一つ重要なのはその構造方法です
[color=red]MyAdapter(Context context,List>list)[/color]パラメータは固定されておらず、使用するデータに応じて自分で定義できます.
[color=blue][b]最初のパラメータは、表示するコンテキスト環境です.
[b][color=red]2番目のパラメータは、各エントリを記録するためのデータである.[/color][/b]
[color=red][b]第4の方法は主にこのエントリの全体情報を返すことであり、それは単独のレイアウトファイルであり、もちろんandroid構造によってもViewクラスの継承クラスである[/b]//color]、ここでもう一つの知識点はLayoutInflaterクラスであり、そのinflate()メソッドはレイアウトファイルに基づいてそのViewを得ることができる.
[color=red]最も重要なアイデアは、これらのエントリからそのサブView(ListViewには多くのエントリが関係し、各エントリには多くのコンポーネントがあり、ここではListViewの複数のダウンロードタスクは異なるエントリであり、各ダウンロードタスクの名前、進捗度はそのサブViewのコンポーネントである)を取得し、サブコンポーネントを取得した後、構造方法においてList>listパラメータが伝達する値に応じて、対応する値を付与したり、リソースを設定したりすることができます.具体的なコードは以下の通りです.
Androidが提供する[color=blue][b]3種類のAdapter[/b][/color][/color][/color]には主に[color=red]ArrayAdapter SimpleAdapter SimpleCursorAdapter[/color]がある
[b]ArrayAdapterは簡単な配列アダプタである[/b]
[color=blue][b]SimpleAdapterは、義理の子Viewレイアウトをカスタマイズすることができ、画像を持つことができる[b][color/color]
[size=medium][b]SimpleCursorAdapterは主にデータベースに用いられている[b]/[size]前の2つのデータソースは一般的にString[]またはListであり、後の1つのデータソースは一般的にデータベースクエリで得られるCursorである
カスタマイズで一番多いのは[color=red]BaseAdapter[/color]
継承[color=red][b]BaseAdapter[/b][/color],具体的には複写する方法は4つあります.
public int getCount()
public Object getItem(int position)
public long getItemId(int position)
public View getView(int position, View convertView, ViewGroup parent)
もう一つ重要なのはその構造方法です
[color=red]MyAdapter(Context context,List>list)[/color]パラメータは固定されておらず、使用するデータに応じて自分で定義できます.
[color=blue][b]最初のパラメータは、表示するコンテキスト環境です.
[b][color=red]2番目のパラメータは、各エントリを記録するためのデータである.[/color][/b]
[color=red][b]第4の方法は主にこのエントリの全体情報を返すことであり、それは単独のレイアウトファイルであり、もちろんandroid構造によってもViewクラスの継承クラスである[/b]//color]、ここでもう一つの知識点はLayoutInflaterクラスであり、そのinflate()メソッドはレイアウトファイルに基づいてそのViewを得ることができる.
[color=red]最も重要なアイデアは、これらのエントリからそのサブView(ListViewには多くのエントリが関係し、各エントリには多くのコンポーネントがあり、ここではListViewの複数のダウンロードタスクは異なるエントリであり、各ダウンロードタスクの名前、進捗度はそのサブViewのコンポーネントである)を取得し、サブコンポーネントを取得した後、構造方法においてList>listパラメータが伝達する値に応じて、対応する値を付与したり、リソースを設定したりすることができます.具体的なコードは以下の通りです.
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter
{
private Context context;
private LayoutInflater layoutInflater;
private List