Java 要将同一适配器用于不同的活动和不同的行布局吗

Java 要将同一适配器用于不同的活动和不同的行布局吗,java,android,Java,Android,我希望适配器根据发送数据的活动选择一个行布局或另一个行布局。发送数据有两个活动 目前我只知道如何使适配器使用一行布局。我不知道如何编写额外的代码来让它选择不同的行布局,这取决于发送数据的活动。第二行布局中不会有任何复选框 这是我的适配器: 公共类ShopItemAdapter扩展了ArrayAdapter{ public ShopItemAdapter上下文,ArrayList shopItem{ 超级上下文,0,shopItem; } @非空 @凌驾 公共视图getViewint位置,视图co

我希望适配器根据发送数据的活动选择一个行布局或另一个行布局。发送数据有两个活动

目前我只知道如何使适配器使用一行布局。我不知道如何编写额外的代码来让它选择不同的行布局,这取决于发送数据的活动。第二行布局中不会有任何复选框

这是我的适配器:


公共类ShopItemAdapter扩展了ArrayAdapter{ public ShopItemAdapter上下文,ArrayList shopItem{ 超级上下文,0,shopItem; } @非空 @凌驾 公共视图getViewint位置,视图convertView,@NonNull视图组父级{ ifconvertView==null{ convertView=LayoutInflater.fromgetContext.inflateR.layout.row\u布局,父级,false; } TextView tvItem=TextViewconvertView.findViewByIdR.id.tvItemName; TextView tvQty=TextViewconvertView.findViewByIdR.id.tvQty; 复选框cbIsPurchased=CheckBoxconvertView.findviewbydr.id.cbIsPurchased; ShopItem _ShopItem=getItemposition; tvItem.setText_shopItem.getItemName; tvQty.setTextString.valueOf_shopItem.getQuantity; 如果_shopItem.getIsPurchased==1{ cbIsPurchased.setCheckedtrue; } 否则{ cbIsPurchased.setCheckedfalse; } 返回视图; }
}

您可以向ShopItemAdapter构造函数添加一些参数,以区分调用的活动,但是如果这意味着在getView代码中使用许多if条件,那么我认为最好编写几个适配器,您将有一个非常清晰的代码。

您有固定数量的使用此适配器的活动?是的,我有两个使用此适配器的活动。我应该向构造函数添加哪些参数?我想我知道如何为getView编写条件。我只是不知道该在构造函数中放入哪些参数。公共类ShopItemAdapter扩展了ArrayAdapter{private boolean mIsActivity1;///constructor///public ShopItemAdapter上下文,ArrayList shopItem,boolean isActivity1{supercontext,0,shopItem;mIsActivity1=isActivity1;}//然后在getView中,您可以使用mIsActivity1来区分活动…………好的,thanx。mIsActivity1是如何知道我的两个活动的?我很难准确地理解适配器中引用活动的内容。是getContext吗?是父级吗?是convertView吗?我真的一点都不聪明。