我尝试以编程方式在Android中创建UI元素。它正在工作,但当我按下后退按钮并返回创建元素的活动后,我想删除以前创建的元素。我在onCreate方法中尝试了以下代码:
((LinearLayout) findViewById(R.id.mainContainer)).removeAllViews();
((LinearLayout) findViewById(R.id.mainContainer)).addView(generateElementsDynamically());
我的generateElementsDynamically()方法:
public static LinearLayout generateElementsDynamically()
{
LinearLayout main = new LinearLayout(context);
main.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
main.setLayoutParams(layoutParams1);
for (int i = 0; i < ServicesStorage.listServiceDetails.size(); i++)
{
LinearLayout lin = new LinearLayout(context);
for (int j = 0; j < ServicesStorage.listServiceDetails.get(i).size(); j++)
{
lin.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lin.setLayoutParams(layoutParams);
TextView txt = new TextView(context);
txt.setText(ServicesStorage.listServiceDetails.get(i).get(j).toString());
txt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
lin.addView(txt);
}
main.addView(lin);
}
return main;
}
知道出了什么问题吗?
由于
答案 0 :(得分:1)
我找到了解决方案,但我不确定它是否是最好的。 出于某种原因,我必须清除ServicesStorage.listServiceDetails列表,然后再次填充它......并且它正在工作
答案 1 :(得分:0)
我认为您正在尝试使用新数据刷新UI。我建议你改变你的设计。您可以使用ListView并将其填入新数据。他们改变的任何时候你都可以打电话
listview.notifySetDataChanged();