Je suis assez nouveau pour le développement Android, et j'ai une question rapide sur un NullPointerException
. Lorsqu'un bouton est pressé à partir de la première page d'activité, il passe à la deuxième activité, où il y a un NullPointerException
. Voici le code pour le main.xml « Suivant » (celui qui est pressé pour passer des activités):NullPointerException lors de la modification des activités
<Button
android:id="@+id/ButtonNext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/next"
android:onClick="next">
</Button>
Voici le code pour la première activité:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class CalorieIntakeCalculator extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void next(View view) {
Intent intentExercise = new Intent(view.getContext(), Exercise.class);
startActivityForResult(intentExercise, 0);
}
}
Lorsque le « suivant » bouton est pressé, il passe à l'activité de l'exercice:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class Exercise extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.exercise);
final EditText weightField = (EditText) findViewById(R.id.EditTextWeight);
try {
((Global) this.getApplication()).setWeight(Integer.parseInt(weightField.getText().toString()));
} catch(NumberFormatException nfe) {
System.out.println("Could not parse " + nfe);
}
Dans la classe d'exercice, je suis en train de la ContentView à exercise.xml. Dans les prochaines instructions, je souhaite définir le poids entier global sur le nombre que l'utilisateur place dans la zone EditTextWeight EditText. Voici le code dans le fichier Global.java, qui étend Appllication et rend les variables globales:
import android.app.Application;
public class Global extends Application {
private int weight;
private int age;
private int feet;
private int inches;
//START WEIGHT
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
//END WEIGHT
//START AGE
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//END AGE
//START FEET
public int getFeet() {
return feet;
}
public void setFeet(int feet) {
this.feet = feet;
}
//END FEET
//START INCHES
public int getInches() {
return inches;
}
public void setInches(int inches) {
this.inches = inches;
}
//END INCHES
}
Lorsque je tente et lancer le programme dans un émulateur, le programme se bloque. Je regardais dans LogCat et trouvé les NullPointerException
en utilisant points d'arrêt dans cette ligne exercise.java:
((Global) this.getApplication()).setWeight(Integer.parseInt(weightField.getText().toString()));
Merci :) ~
Merci beaucoup! Il semble que cela fonctionnerait pour moi :) Malheureusement, je pourrais avoir à réécrire tout le code lol. Mais oui, je vais y jeter un coup d'œil: D – koysean