2012-11-09 80 views
0

我有一個MainActivity啓動PuzzleActivity,在PuzzleActivity的一半我想去SizeSelection活動(有另一個佈局),當點擊一個這是在佈局和進程中的活動做的按鈕我想繼續在那裏結束puzzleactivity(它去SizeSelection開始活動1,切換到活動2(完成時),恢復活動1它結束

SizeSelection:

public static short getGridSize(Context content) { 
     if (mIbtn3x3 == view) { 
      short gridSize = 3; 
      return gridSize; 
     }else if (mIbtn4x4 == view) { 
      short gridSize = 4; 
      return gridSize; 
     }else if (mIbtn5x5 == view) { 
      short gridSize = 5; 
      return gridSize ; 
     } 
      return gridSize; 
     } 

puzzleActivity:

Intent i5 = new Intent(this, SizeSelection.class); 
      startActivity(i5); 
      createGameBoard(SizeSelection.getGridSize(this)); 
      break; 

回答

3

使用startActivityForResult()而不是startActivity()。這樣你的啓動活動不會被破壞,但就像「暫停」一樣,所以它的方法將被調用onPause()

然後從第二一回回到你的第一個活動,在需要的時候使用:

setResult(RESULT_OK); 
finish(); 

,如果你需要發回的一些數據使用意圖和重載setResult()方法:

Intent data = new Intent(); 
data.put... 
setResult(RESULT_OK, data); //RESULT_OK should be replaced by a positive int if you want to use the onActivityResult() method and get the data in the first activity 
finish();