将文本文件传递给arrayadapter

时间:2012-06-10 13:37:21

标签: android arraylist android-arrayadapter

我的问题如下。我希望能够将文本文件读入数组适配器。我有一个TextView和3个RadioButtons。到目前为止,我已设法传递一个字符串数组,可用于更新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);   
    }

-

问:问题是   问:回答一句   问:回答二   问:回答三个

所以我想要todo是将arraylist传递给arrayadapter所以我可以使用getView方法返回各种结果

到目前为止,我已经尝试将列表作为arraylist传递给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;

}

1 个答案:

答案 0 :(得分:0)

您需要创建自定义适配器以提供列表视图。

您可以创建自定义ArrayAdapter(示例here)或BaseAdapter(示例here)。

在任何一种情况下,您都将覆盖适配器的getView方法,以将数据处理到布局中的各个小部件中。

修改

如果问题实际上是“如何调用适配器?”然后:

private CustomAdapter my_adapter;

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

然后按照上面的其中一个链接创建CustomAdapter