动态创建组件

时间:2014-01-25 17:24:45

标签: java android android-layout

我正在创建一个需要动态创建元素的应用程序。 我在onCreate()方法中使用以下代码。

TextView product = new TextView (this);
product.setText ("" + pName + ""); 
//Add TextView to LinearLayout 
ll.addView (product);

工作正常,问题是当我转动手机时,项目出现重复。我做错了什么?

2 个答案:

答案 0 :(得分:2)

当您旋转手机时,它会销毁活动并再次创建,但会保存所有要恢复的内容,onCreate()方法会再次创建文本视图,尽管它们已经在视图中。

您应该在创建之前检查它们。

您可以通过检查savedInstanceState来执行此操作,如果它不为空,则表示它正在重新创建。

if (savedInstanceState == null){
   // create your textviews
}

答案 1 :(得分:1)

您正在以编程方式创建TextView,当您关闭手机时,不会从布局中删除对象,因此每次创建活动时都会在布局中添加元素。您可以使用onDestroy()方法对其进行控制。 我希望它有所帮助。