我有两个布局xml文件。在一个布局中,我有RecyclerView,另一个布局只有几个文本视图和按钮。现在我的问题是我想在RecyclerView为空时更改我的布局。 RecyclerView包含用户可以通过点击每行RecyclerView中的删除图标来删除的产品列表。当用户达到列表的大小零,然后我想要更改布局其他包含文字your cart is empty please add some products.
android:在运行时更改布局屏幕
我的第一个布局看起来像这样。
从删除列表中的所有项目后,应该是这样的。我所有的XML文件都准备好了。
这里是我的我的适配器的一些代码。
onCreateViewHolder
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = layoutInflater.inflate(R.layout.checkout_single_design, parent, false);
return new ViewHolder(view);
}
删除图标点击收听
holder.ivDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openDialog(design);
}
});
这里是openDialog()方法。这里的设计是我的模特班。
public void openDialog(final Design design) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Confirm");
builder.setMessage("Remove item from cart?");
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
designList.remove(design);
notifyDataSetChanged();
saveSharedPref(context, "cart", new Gson().toJson(designList));
Toast.makeText(context, "deleted", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
Design.java
public class Design implements Serializable{
public int id;
public String qualityId;
public String qualityName;
public String designId;
public String designName;
public String image;
public String name; //use as shade name
public String discPercent;
public String amount;
public int pcs;
public String qty;
}
在活动,我只是设置适配器recyclerView。
co_recycler_view.setLayoutManager(new LinearLayoutManager(CheckOutActivity.this));
co_recycler_view.setHasFixedSize(true);
adapter = new CheckOutAdapter(CheckOutActivity.this, designList);
co_recycler_view.setAdapter(adapter);
我希望我的问题对所有人都清楚。我不知道如何做到这一点。请建议。
这意味着我必须在列表为空时创建回调逻辑,然后使用setContentView。正确? –
是的,您可以在用户删除一个项目时检查'RecyclerView'中的项目数量,然后调用'setContentView'(如果它为空),但是记住当您调用它时必须再次绑定您的视图。所以如果我是你,我会选择'ViewSwitcher'。 – Max