安卓 Java在自定义适配器中创建对两个模型的引用
我有两个名为Buyer
和Car
的模型,以及一个名为custom_row
的自定义布局,用于显示ListView
的行
public class CustomAdapter extends BaseAdapter {
Context c;
ArrayList<Buyer> buyers;
public CustomAdapter(Context c, ArrayList<Buyer> buyers) {
this.c = c;
this.buyers = buyers;
}
@Override
public int getCount() {
return buyers.size();
}
@Override
public Object getItem(int position) {
return buyers.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(c).inflate(R.layout.custom_row, parent, false);
}
TextView tvBuyerName = (TextView) convertView.findViewById(R.id.tvBuyerName);
TextView tvCarModel = (TextView) convertView.findViewById(R.id.tvCarModel);
final Buyer b = (Buyer) this.getItem(position);
tvBuyerName.setText(b.getBuyerName());
return convertView;
}
}
到目前为止,我只做了以上代码,我只能显示买家的名字。如何在ArrayList
中创建另一个对模型Car
的引用,以便我可以在同一个ListView
中获取并显示来自模型Buyer
和模型Car
的信息
# 1 楼答案
您可以使用
Buyer
和Car
作为属性创建一个新类:在你的
ArrayList
(ArrayList<Transaction>
)中使用它# 2 楼答案
一种方法是创建一个包含汽车和;买家数据。 这样你就可以从同一个arraylist访问汽车和买家
另一个是将两个arraylist(carList和buyerList)传递给适配器的构造函数
然后
# 3 楼答案
不要像下面这样创建
Buyer
的ArrayList,而是创建Pair<Buyer,Car>
的ArrayList:当你想得到
Buyer
或Car
对象时,可以这样调用它们:要创建新对,请执行以下操作: