【问题标题】:When the application is restarted, dynamically generated Buttons are not present?重新启动应用程序时,动态生成的按钮不存在?
【发布时间】:2014-02-13 13:44:29
【问题描述】:

我正在使用预定义的按钮来动态添加新按钮。
但是当我重新启动应用程序时,动态生成的按钮不会出现在创建它们的布局中。

生成按钮的代码。

if(v == btnaddnew)                          //Button to new buttons in layout Dynamically
{
    final Button btn1 = new Button(this);
    btn1.setText("New");
    btn1.setId(btncount);
    LinearLayout ll = (LinearLayout)findViewById(R.id.layout1);
    LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);       
    ll.addView(btn1, lp);
    btncount++;
}

在主要活动中

int btncount = 15;

【问题讨论】:

  • 您在应用程序的哪个位置运行该代码?执行时ll是什么?
  • @FD_ 这是我生成按钮的布局
  • 重启应用就像关闭应用或按下主页按钮让应用留在后台?如果重新启动应用程序,它将再次调用 onCreate,如果您的动态按钮创建不在 onCreate 中,它将不存在!
  • @Aadi Droid 是的,关闭应用程序并重新启动后。动态生成的按钮不存在
  • 发布更多与此相关的代码。不足以识别问题

标签: android button dynamically-generated


【解决方案1】:

每次您关闭应用程序并重新启动它时,都会为您的 Activity 调用 onCreate 方法!我怀疑你正在加载你的基本 layout.xml 文件,你动态添加的按钮不是这个布局的一部分,只在你的代码中定义。我假设添加这些动态按钮的代码不在onCreate中,它们可能是一些按钮点击回调? 我的意思是,如果您出于上述原因关闭应用程序,则不会出现动态添加的工件!

如果你想在关闭它后恢复到最后一个状态,你需要在为活动调用 onDestroy 方法之前想办法存储你当前的布局!这个存储的布局可以在你的 onCreate 中重新加载。让我清楚一点,在您的 onCreate 中,您可以检查是否有存储的布局,如果是的话!否则从您的布局文件中加载。

编辑:

看看这个:http://developer.android.com/guide/components/activities.html#SavingActivityState

【讨论】:

  • 是的,这就是我面临的问题。那么你能告诉我如何存储这些动态生成的按钮并在 restarting application 之后在布局上重新加载 Buttons 。这样Dynamically Generated Buttons 将出现在创建它们的Layout 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 2017-08-14
  • 2016-04-19
  • 1970-01-01
相关资源
最近更新 更多