我希望我的适配器选择一个row_layout或另一个row_layout,具体取决于哪个Activity正在发送数据。发送数据有两个活动。
目前我只知道如何使适配器使用一个row_layout。我无法弄清楚如何编写额外的代码以使其选择不同的row_layout,具体取决于哪个Activity正在发送数据。 (第二行row_layout中没有任何复选框)。
这是我的适配器:
public class ShopItemAdapter extends ArrayAdapter<ShopItem> {
public ShopItemAdapter(Context context, ArrayList<ShopItem> shopItem){
super(context, 0, shopItem);
}
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.row_layout, parent, false);
}
TextView tvItem = (TextView)convertView.findViewById(R.id.tvItemName);
TextView tvQty = (TextView)convertView.findViewById(R.id.tvQuantity);
CheckBox cbIsPurchased = (CheckBox)convertView.findViewById(R.id.cbIsPurchased);
ShopItem _shopItem = getItem(position);
tvItem.setText(_shopItem.getItemName());
tvQty.setText(String.valueOf(_shopItem.getQuantity()));
if(_shopItem.getIsPurchased() == 1){
cbIsPurchased.setChecked(true);
}
else{
cbIsPurchased.setChecked(false);
}
return convertView;
}
}
答案 0 :(得分:1)
你可以在ShopItemAdapter构造函数中添加一些参数来区分调用哪个Activity,但如果这意味着在getView代码中使用了多个if条件,那么我认为编写多个适配器会更好,你将拥有一个非常清晰的代码。