0

理由と方法、この行は配列label.setText(items [position]);全体を処理しています。ループ条件なし!

これは、array_adapterクラスにアクセスしている私のクラスです。リソースについて...。

class FunnyLookingAdapter extends ArrayAdapter 
{
    Context ctxt;

    FunnyLookingAdapter(Context ctxt, int resource,String[] items) 
    {
        super(ctxt, resource, items);
        this.ctxt=ctxt;
    }

    public View getView(int position, View convertView,ViewGroup parent) 
    {
        TextView label=(TextView)convertView;

        if (convertView==null) 
        {
            convertView=new TextView(ctxt);
            label=(TextView)convertView;
        }

        label.setText(items[position]); //------------------ this is the line !
        return(convertView);
    }
}

コードのこのフェーズでは、前のクラスを使用しています。したがって、コードは::です。

    GridView grd = ( GridView ) findViewById ( R.id.gd_v );

    grd.setAdapter(new FunnyLookingAdapter(this,
            android.R.layout.simple_list_item_1,
            items));

文字列リソース配列は次のとおりです。

String[] items={"lorem", "ipsum", "dolor", "sit", "amet",
        "consectetuer", "adipiscing", "elit", "morbi", "vel",
        "ligula", "vitae", "arcu", "aliquet", "mollis",
        "etiam", "vel", "erat", "placerat", "ante",
        "porttitor", "sodales", "pellentesque", "augue", "purus"};
4

2 に答える 2

0

アダプターは、アイテムの数を取得し、リストが表示するための多くのビューを作成するように設計されています。

簡単に言えば、(あなたが考えている)ループはSuper クラスに記述されているため、再度記述する必要はなく、配列全体を処理するだけです。

アダプターを理解するために参照できる多くの優れたリンクがあります。

  1. BaseAdapter とその使用方法について

  2. Android SDK のアダプタについて

  3. プロ - アンドロイド

  4. 学習アンドロイド

于 2012-12-05T12:19:48.497 に答える
0

このコードを試してください:

Context ctxt;
String[] mItems;

FunnyLookingAdapter(Context ctxt, int resource,String[] items) 
{
    super(ctxt, resource, items);
    this.ctxt=ctxt;
    this.mItems = items;
}

public View getView(int position, View convertView,ViewGroup parent) 
{
    TextView label=(TextView)convertView;

    if (convertView==null) 
    {
        convertView=new TextView(ctxt);
        label=(TextView)convertView;
    }

    label.setText(mItems[position]); //------------------ this is the line !
    return(convertView);
}

このようにして、項目配列にアクセスできます。あなたのコードでは、 String 配列はコンストラクター メソッドによってのみアクセスできるため、getView()関数は実際にそれを見ることができませんでした。

于 2012-12-05T11:49:13.830 に答える