2014-02-12 84 views
0

我正在使用預定義的Button來動態添加新按鈕。
但是,當我重新啓動應用程序時,動態生成的按鈕不在它們創建的佈局中。當應用程序重新啓動時,動態生成的按鈕不存在?

代碼,以生成按鈕。

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; 
+1

凡在你的應用程序,你運行該代碼?執行時'll'是什麼? –

+0

@FD_這是我的佈局,其中我生成按鈕 –

+1

重新啓動應用程序,如關閉應用程序或按home鍵,讓應用程序在後臺繼續? 在重新啓動應用程序的情況下,它會再打電話的onCreate,如果你的動態按鈕創建不是在OnCreate它不會在那裏! –

回答

0

每次你關閉你的應用程序並重新啓動它的onCreate方法被調用爲您的活動!我懷疑你正在加載你的基本layout.xml文件,你動態添加的按鈕不是這個佈局的一部分,只能在你的代碼中定義。我假設代碼添加這些動態按鈕不在onCreate,他們可能是一些按鈕點擊回調? 我的觀點是,如果您因上述原因關閉應用程序,動態添加的工件將不會出現!

如果要恢復到過去的狀態,關閉它後,你需要確定一種方法來存儲您的當前佈局的onDestroy方法被調用爲活動前!這個存儲的佈局可以在你的onCreate中重新加載。讓我明確一點,在你的onCreate中,你可以檢查是否有存儲佈局,如果是從它加載!否則從佈局文件加載。

編輯:

看看這個:http://developer.android.com/guide/components/activities.html#SavingActivityState

+0

是的,這是我面臨的問題。那麼你能告訴我如何存儲這些動態生成的按鈕,並在'重新啓動應用程序'後在佈局上重新加載'Buttons'。所以'動態生成的按鈕'將出現在創建它們的「佈局」中。 –

+0

我已經更新了答案 –

相關問題