java - 每一次按钮点击都会为旧布局添加一个动态布局 ||Android||
问题描述
我到处检查过,但找不到答案。我在每次点击时动态生成订单详细信息。第一次点击工作正常,但之后,每次点击都会将新订单添加到旧订单。旧的并没有消失。我试过remove view
了,但这也无济于事。我该如何解决?我想在单击时显示每个订单详细信息。
@Override
public void itemClicked(int index, int siparisId) {
siparis_id = siparisId;
getSiparisUrunleri(siparis_id);
}
private void getSiparisDetay(int siparisId) {
linearUrunler = view.findViewById(R.id.linearUrunler);
for (SiparisUrunleri siparisUrunleri : siparisUrunleriList) {
linearTxt = new LinearLayout(context);
linearTxt.setOrientation(LinearLayout.HORIZONTAL);
linearTxt.setWeightSum(10f);
linearTxt.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
TextView txtUrunAdi = new TextView(context);
txtUrunAdi.setText(siparisUrunleri.getUrun_adi());
txtUrunAdi.setId(siparisUrunleri.getId());
txtUrunAdi.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 8f));
txtUrunAdi.setPadding(3, 3, 3, 3);
TextView txtUrunAdet = new TextView(context);
txtUrunAdet.setId(siparisUrunleri.getId());
txtUrunAdet.setText(MessageFormat.format("{0} Adet", siparisUrunleri.getAdet()));
txtUrunAdet.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
txtUrunAdet.setPadding(3, 3, 3, 3);
TextView txtUrunOlcu = new TextView(context);
txtUrunOlcu.setId(siparisUrunleri.getId());
txtUrunOlcu.setText(MessageFormat.format("{0}{1}", parseInputByReplace(siparisUrunleri.getOlcu()), getResources().getString(R.string.meter_square_sign)));
txtUrunOlcu.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
txtUrunOlcu.setPadding(3, 3, 3, 3);
linearTxt.addView(txtUrunAdi);
linearTxt.addView(txtUrunAdet);
linearTxt.addView(txtUrunOlcu);
linearLayout.addView(linearTxt);
}
linearUrunler.addView(linearLayout);
crdBtnX.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((ViewGroup) linearUrunler.getParent()).removeView(linearLayout);
relativeSiparisDetay.setVisibility(View.GONE);
}
});
}
siparisUrunleriList 每次关闭都会清除项目。
解决方案
尝试removeAllViewsInLayout();
用于父布局,
例如 :
linearLayout.removeAllViewsInLayout();
推荐阅读
- java - 如何使用 JPA 和 Hibernate 修复“如果指定了 SELECT DISTINCT,则 ORDER BY 项目必须出现在选择列表中”
- postgresql - 字符串中的数值 - SQL
- arm - 另一个“/lib/libc.so.6: version `GLIBC_2.17' not found”问题
- sql - CASE 语句中的 LISTAGG
- mysql - 自动将行从 mysql db 安全地传输到另一个封闭的服务器
- r - 标记聚类数据
- angular - Angular 中的“ng build”
- excel - VBA - 将数据从 100 多张具有可变行数的相同工作表中抓取到单个合并工作表中
- r - 子集 df 基于列中的值并检索给定日期之前和之后 30 天
- python - 带有 sum 的 itertools product() 函数