2つのレイアウトxmlファイルがあります。あるレイアウトでは、私はRecyclerViewを持っていて、もう一つのレイアウトはtextViewとボタンだけです。今私の質問は、私はRecyclerViewが空のときに私のレイアウトを変更したいです。 RecyclerViewには、RecyclerViewの各行にある削除アイコンをタップして削除できる製品のリストが含まれています。ユーザーがリストのサイズゼロに達すると、レイアウトを他のテキストに変更する場合があります。your cart is empty please add some products.
アンドロイド:実行時にレイアウト画面を変更する
私の最初のレイアウトはこのようになります。
リストからすべての項目を削除した後、それは次のようになります。私のすべてのXMLファイルが準備完了です。
は、ここに私のアダプタの私のいくつかのコードです。
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = layoutInflater.inflate(R.layout.checkout_single_design, parent, false);
return new ViewHolder(view);
}
onCreateViewHolder削除アイコンをクリックしてリスナー
holder.ivDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openDialog(design);
}
});
そして、ここではopenDialogの()メソッドです。ここでDesignは私のモデルクラスです。活動で
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を使用する必要があることを意味します。正しい? –
はい、ユーザーが項目を削除した後に 'setContentView'を空にすると' RecyclerView'の項目数を確認できますが、呼び出すたびに再度ビューをバインドする必要があります。もし私があなただったら私は代わりに 'ViewSwitcher'に行くでしょう。 – Max