0

私の質問は次のとおりです。テキストファイルをアレイアダプタに読み込めるようにしたいと思います。1つのTextViewと3つのRadioButtonがあります。これまでのところ、TextViewの更新に使用できる文字列配列を渡すことができました。以下に示すような配列リストがあります

ArrayList<info> list = new ArrayList<info>();

    for(int i=1; i <= 3; i++)
    {
        Reader reader = new ResultsReader("C:/Users/ALEXDEV/workspace/Questions/src/quiz"+i+".txt");
        reader.read();

        String str = ((ResultsReader)reader).getInput();
        String data[] = str.split("<.>");

        info = q new info();
        q.question = data[0];
        q.choice1 = data[2];
        q.choice2 = data[3];
        q.choice3 = data[4];
        list.add(q);
    }

    for(Question qs: list) { 

      System.out.println("Q: "+qs.question); 
        System.out.println("Q: "+qs.choice1); 
        System.out.println("Q: "+qs.choice2); 
        System.out.println("Q: "+qs.choice3);   
    }

-

Q:質問
Q:回答1
Q:回答2
Q:回答3

だから私がやりたいのは、arraylistをarrayadapterに渡して、getViewメソッドを使用してさまざまな結果を返すことができるようにすることです

これまで、配列リストであるリストをMySimpleArrayAdapterアダプター= new MySimpleArrayAdapter(this、list);に渡そうとしました。

パブリッククラスCustomAdapterはArrayAdapterを拡張します{

private ArrayList<Question> list;
private Context context;

public CustomAdapter(Context context, int textViewResourceId, ArrayList<Question> list) {
    super(context, textViewResourceId,list);
    this.context = context;
    this.list = list;
    // TODO Auto-generated constructor stub

}

public View getView(int position, View convertView, ViewGroup parent)
{
     View view = convertView;
        if (view == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           view = inflater.inflate(R.layout.basic, null);
        }

        Question element = list.get(position);


        if (element!= null) {
            // My layout has only one TextView
            TextView itemView = (TextView) view.findViewById(R.id.questionText);

            if (itemView != null) {
                // do whatever you want with your string and long
                itemView.setText(String.format("%s %d", element.question, element.answer));
            }

         }


        return view;

}
4

1 に答える 1

0

リストビューをフィードするには、カスタムアダプタを作成する必要があります。

カスタムArrayAdapter(ここの例)またはBaseAdapter(ここの例)を作成できます。

いずれの場合もgetView、アダプターのメソッドをオーバーライドして、データをレイアウト内のさまざまなウィジェットに処理します。

編集

質問が実際に「アダプターを呼び出すにはどうすればよいですか?」である場合。それから:

private CustomAdapter my_adapter;

my_adapter = new CustomAdapter(this, R.layout.row, list);
setListAdapter(my_adapter);

そして、上記のリンクの1つに従って、を作成しますCustomAdapter

于 2012-06-10T14:15:14.820 に答える