Par*_*iya 2 android android-intent
我读了Hello Android书,我不知道下面的代码.我不知道该怎么做getIntExtra()和putExtra()int这段代码.
private void startGame(int i) {
Log.d(TAG, "clicked on " + i);
Intent intent = new Intent(Sudoku.this, Game.class);
intent.putExtra(Game.KEY_DIFFICULTY, i);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
Game.java
public class Game extends Activity {
private static final String TAG = "Sudoku" ;
public static final String KEY_DIFFICULTY ="org.example.sudoku.difficulty" ;
public static final int DIFFICULTY_EASY = 0;
public static final int DIFFICULTY_MEDIUM = 1;
public static final int DIFFICULTY_HARD = 2;
private int puzzle[] = new int[9 * 9];
private PuzzleView puzzleView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate" );
int diff = getIntent().getIntExtra(KEY_DIFFICULTY,DIFFICULTY_EASY);
puzzle = getPuzzle(diff);
calculateUsedTiles();
puzzleView = new PuzzleView(this);
setContentView(puzzleView);
puzzleView.requestFocus();
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是你在Game类中设置一个局部整数('diff').默认值为零(简单),然后立即将其传递给getPuzzle方法.... 用户输入值(真实值一切都很好)是如何找到它进入getPuzzle方法的?
Hei*_*nzi 11
这段代码:
Intent intent = new Intent(Sudoku.this, Game.class);
intent.putExtra(Game.KEY_DIFFICULTY, i);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
创建一个intent,当执行时startActivity,做两件事:
Game(由参数指定Game.class)和i(=用户输入)传递给活动,标记为字符串内容KEY_DIFFICULTY.在活动中,这一行:
int diff = getIntent().getIntExtra(KEY_DIFFICULTY, DIFFICULTY_EASY);
Run Code Online (Sandbox Code Playgroud)
读取KEY_DIFFICULTY用于启动活动的intent中设置的值.因此,diff现在包含用户选择的值(或者DIFFICULTY_EASY,如果活动是通过未设置的其他意图启动的话KEY_DIFFICULTY).
| 归档时间: |
|
| 查看次数: |
48230 次 |
| 最近记录: |