두 개의 레이아웃 xml 파일이 있습니다. 한 레이아웃에서 나는 RecyclerView와 다른 레이아웃을 가지고 단지 몇 textViews와 버튼. 이제 내 질문은 RecyclerView가 비어있을 때 레이아웃을 변경하고 싶습니다. RecyclerView에는 RecyclerView의 각 행에있는 삭제 아이콘을 눌러 제거 할 수있는 제품 목록이 있습니다. 사용자가 목록의 크기가 0이되면 레이아웃을 다른 글꼴로 바꾸고 싶습니다. your cart is empty please add some products.
android : 런타임에 레이아웃 화면 변경
첫 번째 레이아웃은 다음과 같습니다.
목록에서 모든 항목을 삭제 한 후에는 다음과 같아야합니다. 내 모든 XML 파일이 준비되었습니다.
은 여기 내 어댑터 내 일부 코드입니다.
여기
holder.ivDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openDialog(design);
}
});
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = layoutInflater.inflate(R.layout.checkout_single_design, parent, false);
return new ViewHolder(view);
}
onCreateViewHolder 그리고 것은 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 난 그냥 recyclerView에 어댑터를 설정하고 활동에
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;
}
.
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