Android 如何为适配器选择最佳构造函数?
正在研究数组适配器和fonud online,在扩展ArrayAdapter的适配器类中创建构造的不同方法。我很困惑,但我的研究让我感到困惑 看完之后,我的模棱两可并没有消除。因此,我的问题是,如果我有:Android 如何为适配器选择最佳构造函数?,android,android-arrayadapter,Android,Android Arrayadapter,正在研究数组适配器和fonud online,在扩展ArrayAdapter的适配器类中创建构造的不同方法。我很困惑,但我的研究让我感到困惑 看完之后,我的模棱两可并没有消除。因此,我的问题是,如果我有: 两个文本视图和一个图像视图 布局中使用的两个ImageView和一个TextView 我建议你去看看。它清晰且易于实现。当您开始在几个示例中使用它时,您会喜欢它。我将给出一个示例适配器,它是implementbaseadapter。它还包括视图保持架模式,以提高性能 public class
我建议你去看看。它清晰且易于实现。当您开始在几个示例中使用它时,您会喜欢它。我将给出一个示例适配器,它是implementbaseadapter。它还包括视图保持架模式,以提高性能
public class CustomListViewAdapter extends BaseAdapter {
private Context context;
private List<Object> objectList;
public CustomListViewAdapter(Context context, List<Object> objectList) {
this.context = context;
this.objectList = objectList;
}
@Override
public int getCount() {
return objectList.size();
}
@Override
public Object getItem(int position) {
return objectList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
Object object = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.custom_list_row, null);
holder = new ViewHolder();
holder.textProperty = convertView.findViewById(R.id.text_property);
holder.imageProperty = convertView.findViewById(R.id.image_property);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textProperty.setText(object.getDisplayName());
holder.imageProperty.setBackgroundResource(object.checkForSomething() ? R.mipmap.first_image:R.mipmap.second_image);
return convertView;
}
static class ViewHolder{
private TextView textProperty;
private ImageView imageProperty;
}
}
公共类CustomListViewAdapter扩展了BaseAdapter{
私人语境;
私有列表对象列表;
公共CustomListViewAdapter(上下文上下文,列表对象列表){
this.context=上下文;
this.objectList=objectList;
}
@凌驾
public int getCount(){
返回objectList.size();
}
@凌驾
公共对象getItem(int位置){
返回objectList.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视窗座;
对象=获取项目(位置);
if(convertView==null){
convertView=LayoutFlater.from(上下文)。充气(R.layout.custom\u list\u行,空);
holder=新的ViewHolder();
holder.textProperty=convertView.findViewById(R.id.text\u属性);
holder.imageProperty=convertView.findViewById(R.id.image\u属性);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.textProperty.setText(object.getDisplayName());
holder.imageProperty.setBackgroundResource(object.checkForSomething()?R.mipmap.first\u image:R.mipmap.second\u image);
返回视图;
}
静态类视窗夹{
私有文本视图文本属性;
私有ImageView imageProperty;
}
}
实际上,您从未使用过这些。相反,我们实现自定义适配器以满足我们的需要更好地学习自定义适配器。如果你需要的话,那么你将能够做得更好。