getIntExtra() et putExtra()?
J'ai lu Bonjour Android livre et je n'ai pas understan le code suivant.
Je ne sais pas, que faire getIntExtra() et putExtra() int ce code.
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);
}
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();
}
//...
}
Le problème que j'ai c'est que vous êtes la fixation d'un local integer (‘diff’) au sein de la classe de Jeu. avec une valeur par défaut de zéro (facile) puis, immédiatement après le passage dans la getPuzzle méthode .... comment l'utilisateur de la valeur d'entrée ( la valeur réelle si tout se passe bien) jamais trouver son chemin dans le getPuzzle méthode?
- son passé ici ---private void startGame(int i)
- En fait, je ne comprends pas vraiment ce que vous voulez! Si vous souhaitez obtenir la saisie de l'utilisateur, il suffit de créer un
EditText
et tout ce que vous voulez!!
Vous devez vous connecter pour publier un commentaire.
Ce code:
crée une intention qui, lorsqu'il est exécuté avec
startActivity
, fait deux choses:Game
(spécifié par le paramètreGame.class
) eti
(= l'entrée de l'utilisateur) dans l'activité, marqué par la chaîne de contenu deKEY_DIFFICULTY
.Dans l'activité, de cette ligne:
lit la valeur qui a été définie pour
KEY_DIFFICULTY
dans le but utilisé pour démarrer l'activité. Par conséquent,diff
contient maintenant l'utilisateur sélectionné à la valeur (ouDIFFICULTY_EASY
, si l'activité a commencé par une intention différente qui n'a pas ensembleKEY_DIFFICULTY
).Intentions sont utilisés pour démarrer une activité par programmation sous android. L'intention peut transporter des données, lequel vous passez pour le nouveau commencé l'activité.
démarre une nouvelle activité de jeu avec une intention. Mettant un supplément à l'intention des moyens de transmettre des données à l'intention. L'activité (dans votre cas, l'Game.java) alors peut acceess cette supplémentaires à partir de l'intention.
C'est un mécanisme pour transmettre les données entre les activités.
Le premier argument (KEY_DIFFICULTY) est la clé par laquelle le supplément est identifié. Donc, si vous mettez un supplément à l'intention avec la clé 'mykeyexample', vous aurez à faire un obtenir avec la même clé 'mykeyexample" dans une autre activité pour obtenir le désiré supplémentaire de l'intention de l'.
Espère que cette aide