2016-04-24 84 views
-2

所以我有兩種佈局,當按下ImageButton時,我切換到第二個佈局。在我的nexus 6上,如何保持第一個佈局的運行,以便在第二個佈局時按下它將顯示第一個佈局?去以前的佈局?

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ImageButton ImageButton = (ImageButton) findViewById(R.id.image); 

     ImageButton.setBackgroundColor(1); 

     ImageButton.setOnClickListener(new View.OnClickListener(){ 

      @Override 
      public void onClick(View view) 
      { 

       setContentView(R.layout.layoutsecond); 
      } 
     }); 



    } 
} 
+0

可以使用2個片段您的任務。按下按鈕時添加第二個片段,當您按下時,將自動顯示前一個片段。 –

+1

正如您在上一個問題中提到的那樣,更改這樣的佈局並不是一個好主意。使用另一種導航模式 - 如「碎片」或多個「活動」 - 將爲您處理狀態。否則,每次佈局更改後,都需要注意重新初始化所有「視圖」。 –

回答

0

一般的想法,雖然可怕的建議。最好用Fragments and take advantage of the back stack

List<Integer>開頭。

存儲你的第一個觀點就可以了

list.add(R.layout.view1); 

設置你的內容視圖中onCreate,並增加你在佈局中的位置。

int position = 0; // make this a field variable 
setContentView(list.get(position++)); 

當您再次撥打setContentView時,增加並添加更多佈局ID。

list.add(R.layout.view2); 
setContentView(list.get(position++)); 

實施onBackPressed回去。儘管如此,請注意出界異常。

setContentView(list.get(--position)); 

如果你想實現一個功能,向前走,然後

setContentView(list.get(++position));