在ArrayAdapter中无法直接访问对象的公共方法是因为ArrayAdapter是一个通用的适配器,它的目的是将数据集合中的每个对象转换为视图展示在界面上。因此,ArrayAdapter只能访问对象的公共属性,而不能直接访问对象的公共方法。
解决这个问题的方法是创建一个自定义的适配器,继承自ArrayAdapter,并重写getView方法。在getView方法中,可以通过getItem方法获取到数据集合中的每个对象,然后可以直接访问对象的公共方法。
以下是一个示例代码:
public class CustomAdapter extends ArrayAdapter<MyObject> {
public CustomAdapter(Context context, List<MyObject> objects) {
super(context, 0, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 获取当前位置的对象
MyObject myObject = getItem(position);
// 访问对象的公共方法
myObject.publicMethod();
// 其他自定义的逻辑
return convertView;
}
}
在使用自定义适配器时,可以将数据集合传递给适配器的构造方法,并将适配器设置给ListView或RecyclerView等控件。
这样,就可以在自定义适配器中访问对象的公共方法了。
领取专属 10元无门槛券
手把手带您无忧上云