2012-03-22 9 views
0

ギャラリーを使用してクリックしてスクロールするTextViewを作成しようとしています。私はHelloGalleryのチュートリアルを終えましたが、BaseAdapterを拡張しています。Gallery of TextViews

ギャラリーに入るTextViewを作成するためにBaseAdapterを拡張するにはどうすればよいですか?

答えて

0

これを試してください。これは基本的な実装です。動的なビュー追加機能を使用してこのアダプターを拡張することはできますが、これは範囲外です。

class CustomAdapter extends BaseAdapter 
{ 
    private Context context; 
    private Vector<TextView> views; 

    public CustomAdapter(Context c, Vector<TextView> views) 
    { 
     this.context = c; 
     this.views = views; 
    } 



    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 

     if (convertView == null) 
     { 
      convertView = new TextView(context); 
     } 

     ((TextView)convertView).setText(views.get(position).getText()); 

     return convertView; 
    } 

    @Override 
    public int getCount() 
    { 
     return views.size(); 
    } 

    @Override 
    public TextView getItem(int position) 
    { 
     return views.get(position); 
    } 

    @Override 
    public long getItemId(int position) 
    { 
     return position; 
    } 
} 
+0

ハ:あなたはちょうどそう、my_itemレイアウトがTextViewシングル(適切スタイル)を含んでいる場合のように、デフォルトArrayAdapterを使用することができます!人々はまだ 'ベクター'を使用しています! –

+0

Vectorはスレッドセーフであり、ArrayListはスレッドセーフではありません。 –

+0

正確です。だからあなたはロックのためのペナルティを支払うでしょう。アダプタはUI /メインスレッドでのみ呼び出されるため、すべての操作をロックする価値はほとんどありません。 –

0

カスタムアダプターを使用する必要はありません。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
        R.layout.my_item, items);