2012-03-10 9 views
1

私が本来行っているのは、リストビューに色付きのTextViewを取り込むことです。私は、カスタムArrayAdapterを作成しなければならないと考えました。アダプターは私のクラスColorElementのオブジェクトの配列を受け取ります。ここでは、アダプタアンドロイドリストビューのカスタム配列アダプタ

public class ColoredAdapter extends ArrayAdapter<ColorElement> { 
    private final Context context; 
    private final ArrayList<ColorElement> values; 

    public ColoredAdapter(Context context, ArrayList<ColorElement> values) { 
     super(context, R.layout.simple_list_item_1); 
     this.context = context; 
     this.values = values; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 
     TextView textView = (TextView) view.findViewById(R.id.text1); 

     textView.setText(((ColorElement)values.get(position)).getName()); 
     textView.setTextColor(((ColorElement)values.get(position)).getClr()); 
     return view; 
    } 
} 

ためのコードがあり、これは私が注文されたオブジェクトの別のリストがされたオブジェクトの配列を作成し、アダプター

ArrayList<ColorElement> values = new ArrayList<ColorElement>(); 

     for(int i = 0; i < answerCount; ++i) { 
      int num = randNumber.nextInt(colorList.size() - 1); 
      values.add(colorList.get(num)); 
     } 

     mAnswerList.setAdapter(new ColoredAdapter(this, values)); 

colorListを設定するよどこのコードです。私はそれをランダム化しようとしています。私は何のエラーも出ないが、リストは表示されず、私が間違っていることについての手がかりはない。

+0

は、カスタムの行xmlファイルです。 –

+0

私はカスタム行xmlファイルを持っていません。そして私は今日アンドロイド開発を始めましたので、私を許してください:P – wirate

+0

ok心配して、アンドロイドで大歓迎です。このリンクをたどり、イメージビューを無視してください。http://www.androidhive.info/2012/02/android-custom-listview-with-image- and-text/ –

答えて

5

ArrayAdapterが機能するための独自のインスタンスを持つことはできません。実際には動作しません。あなたのコンストラクタでは、リストをスーパーに呼び出す必要があります。その後、すべてが動作します。問題は、ArrayAdapterが内部配列を使用して、values.lengthと一致しない要素の数を報告していることです。あなたのgetビューで

public ColoredAdapter(Context context, ArrayList<ColorElement> values) { 
    super(context, R.layout.simple_list_item_1, values); 
} 

、代わりの values.getgetItem(position)を呼び出します。

関連する問題