Android 自定义适配器问题。
我正在尝试构建一个包含复选框、文本视图和图像的ListView,它应该以可滚动列表的形式逐行重复 我遵循了,但在自定义xml文件并在中引用时出错:Android 自定义适配器问题。,android,android-layout,android-widget,Android,Android Layout,Android Widget,我正在尝试构建一个包含复选框、文本视图和图像的ListView,它应该以可滚动列表的形式逐行重复 我遵循了,但在自定义xml文件并在中引用时出错: setListAdapter(新的ArrayAdapter(此,R.layout.list_项,国家/地区)) 我确信,我需要一个定制的适配器,可以将每个国家的名称放在相应的行中,但不能理解如何做。你能帮帮我吗。非常感谢 以下是创建包含多个数据段的自定义ListView行所需的高级步骤 创建一个类来保存每行所需的数据。在本例中,它看起来是一个布尔值、
setListAdapter(新的ArrayAdapter(此,R.layout.list_项,国家/地区))代码>
我确信,我需要一个定制的适配器,可以将每个国家的名称放在相应的行中,但不能理解如何做。你能帮帮我吗。非常感谢 以下是创建包含多个数据段的自定义ListView行所需的高级步骤
创建一个类来保存每行所需的数据。在本例中,它看起来是一个布尔值、一个字符串和一个可绘制的或可绘制的id。我们把这个班叫做Foo
为列表行创建自定义布局xml文件(以下称为自定义列表布局)
创建一个名为FooAdapter的自定义适配器,该适配器将获取其构造函数中的foo列表
在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;
}
私有列表foos;
公共FooadPater(上下文ctx、int-textViewResourceId、ArrayList项){
超级(ctx、textViewResourceId、items);
this.foos=项目;
}
@凌驾
公共视图getView(int pos、视图视图、视图组父视图){
最终LayoutFlater充气器=父级.getLayoutFlater();
最终视图条目=充气机。充气(R.layout.custom\u list\u layout,null);
Foo-Foo=foos.get(位置);
TextView tv=(TextView)entry.findViewById(R.id.custom\u layout\u text\u view);
tv.setText(foo.getTitle());
//对复选框和图像执行相同的操作
返回v;
}
}
最后,在活动中实例化此适配器,而不是传入列表的“new ArrayAdapter”
太模糊了,相反,在尝试实现上述自定义适配器时,尝试询问您面临的具体挑战。