2017-03-23 12 views
0

私のアダプタは、どのアクティビティがデータを送信しているかに応じて、1つのrow_layoutまたは別のrow_layoutを選択します。データを送信する2つのアクティビティがあります。異なるアクティビティと異なるrow_layoutsを持つ同じアダプタを使用したい

私はアダプタを1つのrow_layoutを使用する方法しか知りません。どのアクティビティがデータを送信しているかに応じて、別のコードを記述して別のrow_layoutを選択する方法を考えることができません。 (2番目のrow_layoutにはチェックボックスがありません)。ここで

私のアダプタです:あなたは活動が呼び出されると区別するためにShopItemAdapterコンストラクタにいくつかのパラメータを追加することができます

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

このアダプターを使用するアクティビティー数は固定されていますか? –

+0

はい、私はこのアダプターを使用する2つのアクティビティーを持っています。 – Monkey

答えて

1

、それはgetViewメソッドのコードであれば、多くの条件文を使用することを意味している場合それから、いくつかのアダプターを書くほうがいいと思いますが、かなり明確なコードがあります。

+0

コンストラクタにどのようなパラメータを追加する必要がありますか? 私はgetViewの条件文を書く方法を知っていると思います。私はちょうどコンストラクタに配置するパラメータを手掛かりがありません。 – Monkey

+0

public class ShopItemAdapter extends ArrayAdapter { プライベートboolean mIsActivity1; ///コンストラクタ/// public ShopItemAdapter(Context context、ArrayList shopItem、boolean isActivity1){ super(context、0、shopItem); mIsActivity1 = isActivity1; } //次にgetViewでmIsActivity1を使用してアクティビティを区別することができます。.......... –

+0

ok、thanxです。 mIsActivity1は私の2つの活動についてどのように知っていますか?アダプターの内部がアクティビティーを参照しているかどうかを正確に理解できません。それはgetContext()ですか?それは親ですか? convertViewですか?私は本当にこれで全く賢明ではありません。 – Monkey

関連する問題