2013-05-06 32 views
0

創建具有相同的佈局,相同的按鍵佈局,相同的按鈕ID 2活動,一切都是相同安卓:保存歷史當啓動第二Activty

例子:

添加在first_activity和second_activity 3個按鈕,一切都置於在同一個地方,並使用相同的id,button1和button2,但最後一個按鈕「check」將可見性設置消失。

第一個活動

爲Button1設置背景資源和BUTTON2

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.first_activity); 
    .................................................. 

     //Change button1 drawable to example1.png 

    button1 = (Button) .... 
    button1.setBackgroundResource(R.drawable.example1); 

     //Change button2 drawable to example1.png 

    button2 = (Button) .... 
    button2.setBackgroundResource(R.drawable.example1); 

     //Check Button 

    check = (Button) findViewById(R.id.check); 
    check.setBackgroundResource(R.drawable.example1); 

    .................................................. 
} 

按鈕1的onClick

public void button1_click (View v){ 

    //If button2 drawable same as check it will changed to another drawable 

    if (button2.getBackground().getConstantState().equals(check.getBackground().getConstantState())){ 
     button2.setBackgroundResource(R.drawable.example2); 
    } 
    else { 
     button2.setBackgroundResource(R.drawable.example1); 
    } 
} 

BUTTON2的onClick

public void button2_click (View v){ 
    Intent second_activity=new Intent (getApplicationContext(), second_activity.class); 
    startActivity(second_activity); 

     //Calling Second Activity when button2 pressed 

    finish(); 

     //Finish First Activity 
} 

條件:第一次按下button1,button2 drawable變成了example2.png。第二被壓按鈕2將推出second_activity和關閉first_activity

我的問題:如何保持BUTTON2繪製集推出second_activity後example2.png

我用下面的代碼在second_activity一樣first_activity

次活動

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.second_activity); 
    .................................................. 

     //Change button1 drawable to example1.png 

    button1 = (Button) .... 
    button1.setBackgroundResource(R.drawable.example1); 

     //Change button2 drawable to example1.png 

    button2 = (Button) .... 
    button2.setBackgroundResource(R.drawable.example1); 

     //Check Button 

    check = (Button) findViewById(R.id.check); 
    check.setBackgroundResource(R.drawable.example1); 

    .................................................. 
} 
+1

當你在第二個活動中只改變了一部分UI時,我想建議你使用'ViewFlipper'.have看看文檔'http://developer.android.com/reference/android/widget/ ViewFlipper.html'以供參考。 – 2013-05-06 17:20:52

回答

1

您可以添加一個「額外」的意圖喲你用來開始第二個活動。這個「額外」可能包含關於按鈕狀態的信息。在第二項活動的onCreate()中,您可以檢查「額外」中的信息並相應地設置按鈕的背景。

編輯:添加例如代碼

我會創建一個布爾變量爲每個按鈕,表示背景的狀態,並且該添加到每個活動,像這樣:

private boolean button1Checked; 
private boolean button2Checked; 

然後,每當你改變背景顏色,你改變適當的變量的狀態:

if (...) { 
    button2.setBackgroundResource(...); 
    button2Checked = true; // or false, whatever 
} 

然後,當喲ü要啓動活性2,你作爲額外增加的狀態下2個按鈕來意圖,像這樣:現在

Intent intent=new Intent (this, second_activity.class); // use "this" instead of getApplicationContext() 
intent.putExtra("button1Checked", button1Checked); 
intent.putExtra("button1Checked", button2Checked); 
startActivity(intent); 

,在第二活動onCreate(),你所傳遞的額外恢復按鈕的狀態,像這樣:

button1 = (Button) .... 
button1Checked = getIntent().getBooleanExtra("button1Checked", false); 
if (button1Checked) { 
    button1.setBackgroundResource(...); // true state 
} else { 
    button1.setBackgroundResource(...); // false state 
} 

button2 = (Button) .... 
button2Checked = getIntent().getBooleanExtra("button2Checked", false); 
if (button2Checked) { 
    button2.setBackgroundResource(...); // true state 
} else { 
    button2.setBackgroundResource(...); // false state 
} 

希望你明白了。

+0

請給出一個示例代碼,或者解釋更多細節?請... – user2341387 2013-05-06 16:42:55

+0

還需要在第二個活動中創建布爾變量? – user2341387 2013-05-06 22:48:53

+0

已經「正在工作」謝謝 – user2341387 2013-05-06 23:02:48