我有一个启动PuzzleActivity的MainActivity,在PuzzleActivity的一半我想去SizeSelection activiy(有另一个布局),当点击布局中的一个按钮时,过程在活动I中完成想要恢复它结束的拼图(它去了SizeSelection。
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;
答案 0 :(得分:3)
使用startActivityForResult()
代替startActivity()
。这样你的启动活动就不会被破坏,但就像“暂停”一样,所以它的onPause()
方法就会被调用。
然后从第二个活动返回到您的第一个活动,需要时使用:
setResult(RESULT_OK);
finish();
如果您需要发回一些数据,请使用intent和重载的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();
答案 1 :(得分:0)
你应该使用
startActivityForResult()
而不是startActivity。当您完成SizeSelection活动调用
时finish()
然后在。中设置网格大小。
onActivityResult()
此处有更详细的说明 http://developer.android.com/reference/android/app/Activity.html#StartingActivities