Je suis nouveau sur Android et Java. J'essaie de capturer des valeurs dans une activité et de les transmettre à une autre activité en utilisant un paquet. Le bundle est créé OK. Mais quand j'essaie d'extraire les valeurs dans la deuxième activité, j'obtiens des valeurs nulles. Qu'est-ce que je fais mal? Activité principaleAndroid Recevoir du texte dans les renvois groupés Null
//Create the bundle
Bundle mybundle = new Bundle();
//Add your data to bundle
mybundle.putString("One",textOne);
mybundle.putString("Two",textTwo);
//Add the bundle to the intent
myIntent.putExtras(mybundle);
//Fire the second activity
startActivity(startIntent);
Voici le code pour obtenir le texte dans la deuxième activité
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle mybundle = getIntent().getExtras();
String myText1 = mybundle.getString("One");
String myText2 = mybundle.getString("Two");
OK. Je vais partager tout mon code. J'essaie un programme très simple pour apprendre Android. Entrez deux nombres à ajouter ensemble sur le premier écran. Avoir la réponse affichée sur un deuxième écran en utilisant un paquet pour passer les valeurs du premier écran au second écran.
Activité principale
public class MainActivity extends AppCompatActivity {
EditText editNum1;
EditText editNum2;
Button addbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editNum1 = (EditText) findViewById(R.id.editNum1);
editNum2 = (EditText) findViewById(R.id.editNum2);
Button addbutton = (Button) findViewById(R.id.button);
addbutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent myIntent = new Intent(MainActivity.this,
AddActivity.class);
final String textOne = editNum1.getText().toString().trim();
final String textTwo = editNum2.getText().toString().trim();
//Create the bundle
Bundle mybundle = new Bundle();
//Add your data to bundle
mybundle.putString("One",textOne);
mybundle.putString("Two",textTwo);
//Add the bundle to the intent
myIntent.putExtras(mybundle);
//Fire the second activity
startActivity(myIntent);
OK Maintenant, le code de l'écran AddActivity J'ai inséré quelques lignes de débogage qui ne fonctionnent pas non plus
public class AddActivity extends AppCompatActivity {
Number gNum1;
Number gNum2;
Number total;
String myText1;
String myText2;
TextView textView;
TextView textView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle mybundle = getIntent().getExtras();
if (mybundle != null) {
String myText1 = mybundle.getString("One");
String myText2 = mybundle.getString("Two");
}
textView = (TextView)findViewById(R.id.textView);
if (myText1 != null) {
textView.setText(myText1);
}else {
textView.setText("FAILED");
}
textView2 = (TextView)findViewById(R.id.textView2);
if (myText1 != null) {
textView2.setText(myText1);
}else{
textView2.setText("FAILED");
Votre code est ok. Peut-être que textOne ou textTwo est nul. Comment l'obtenez-vous? –
pouvez-vous s'il vous plaît mettre votre code d'intention ici. Parce que vous avez envoyé des données avec 'startExtras (mybundle)' intention de départ avec 'startActivity (startIntent)'. – UltimateDevil
Vous ajoutez bundle à myIntent et vous passez l'intention différente (startIntent) pouvez-vous s'il vous plaît ajouter le code complet. – livemaker