我正在尝试构建一个包含checkBox,Textview和图像的ListView,这应该在行中重复为可滚动列表。
我关注Android hello-listview tutorial,但在自定义xml文件并引用它时出错:
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
我确信,我需要一个自定义适配器,可以将每个国家/地区名称放在相应的行中,但无法理解如何执行此操作。你能帮帮我吗?非常感谢。
答案 0 :(得分:0)
以下是创建包含多个数据的自定义ListView行所需的高级步骤。
创建一个名为FooAdapter的自定义适配器,它将在其构造函数中列出Foos。
在FooAdapter的getView()方法中,您将为此行充气自定义视图,按ID查找所有元素,并用Foo中的数据填充它们。像这样:
公共类FooAdapter扩展了ArrayAdapter {
private List<Foo> foos;
public FooAdapater(Context ctx, int textViewResourceId, ArrayList<Foo> items) {
super(ctx, textViewResourceId, items);
this.foos = items;
}
@Override
public View getView(int pos, View view, ViewGroup parent) {
final LayoutInflater inflater = parent.getLayoutInflater();
final View entry = inflater.inflate(R.layout.custom_list_layout, null);
Foo foo = foos.get(position);
TextView tv = (TextView) entry.findViewById(R.id.custom_layout_text_view);
tv.setText(foo.getTitle());
// do the same for the checkbox and image
return v;
}
}
最后,在您的Activity中实例化此适配器,而不是传递List中的“new ArrayAdapter”。