Problème création d'application android
nachding
Messages postés
32
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, :D
Je suis depuis quelques semaines le cours "créez vos application android" de Openclassroom est j'ai un problème pour le TP qui consiste à créer une application : Calculez votre IMC. Lorsque que je clique sur le bouton calculer, l'application quitte inopinément :( Voici mon code Java :
Voici mon logcat :
Merci d'avance !
Je suis depuis quelques semaines le cours "créez vos application android" de Openclassroom est j'ai un problème pour le TP qui consiste à créer une application : Calculez votre IMC. Lorsque que je clique sur le bouton calculer, l'application quitte inopinément :( Voici mon code Java :
package com.zestedesavoir.mapremiereapplication;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity{
private final String defaut = "Veuillez cliquer sur le bouton "Calculer IMC" pour calculer votre IMC";
Button calculer = null;
Button raz = null;
EditText poids = null;
EditText taille = null;
RadioGroup group = null;
TextView result = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calculer = (Button)findViewById(R.id.button1);
raz = (Button)findViewById(R.id.button2);
poids = (EditText)findViewById(R.id.editText1);
taille = (EditText)findViewById(R.id.editText2);
group = (RadioGroup)findViewById(R.id.radioGroup);
result=(TextView)findViewById(R.id.textView4);
calculer.setOnClickListener(clickListener);
poids.addTextChangedListener(textWatcher);
taille.addTextChangedListener(textWatcher);
raz.setOnClickListener(onClickRaz);
}
private TextWatcher textWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
result.setText(defaut);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
};
private OnClickListener clickListener = new OnClickListener()
{
@Override
public void onClick(View v) {
String t = taille.getText().toString();
String p = poids.getText().toString();
float pValue = Float.valueOf(p);
float tValue = Float.valueOf(t);
if(group.getCheckedRadioButtonId()==R.id.radioButton1)
{
tValue = tValue/100;
}
tValue = (float)Math.pow(tValue, 2);
float imc = 0;
imc = pValue/tValue;
result.setText("Votre IMC est de : "+String.valueOf(imc));
}
};
private OnClickListener onClickRaz = new OnClickListener()
{
@Override
public void onClick(View v) {
poids.getText().clear();
taille.getText().clear();
result.setText(defaut);
}
};
}
Voici mon logcat :
10-10 20:51:53.943: E/AndroidRuntime(709): FATAL EXCEPTION: main
10-10 20:51:53.943: E/AndroidRuntime(709): java.lang.NullPointerException
10-10 20:51:53.943: E/AndroidRuntime(709): at com.zestedesavoir.mapremiereapplication.MainActivity$2.onClick(MainActivity.java:94)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.view.View.performClick(View.java:3480)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.view.View$PerformClick.run(View.java:13983)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.os.Handler.handleCallback(Handler.java:605)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.os.Handler.dispatchMessage(Handler.java:92)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.os.Looper.loop(Looper.java:137)
10-10 20:51:53.943: E/AndroidRuntime(709): at android.app.ActivityThread.main(ActivityThread.java:4340)
10-10 20:51:53.943: E/AndroidRuntime(709): at java.lang.reflect.Method.invokeNative(Native Method)
10-10 20:51:53.943: E/AndroidRuntime(709): at java.lang.reflect.Method.invoke(Method.java:511)
10-10 20:51:53.943: E/AndroidRuntime(709): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-10 20:51:53.943: E/AndroidRuntime(709): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-10 20:51:53.943: E/AndroidRuntime(709): at dalvik.system.NativeStart.main(Native Method)
10-10 20:51:55.579: I/Process(709): Sending signal. PID: 709 SIG: 9
Merci d'avance !
A voir également:
- Problème création d'application android
- Comment supprimer une application préinstallée sur android - Guide
- Android recovery - Guide
- Application se ferme toute seule android - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Desinstaller application windows - Guide
1 réponse
Bonjour,
Il faut absolument apprendre à lire une exception, tu en auras très souvent et tu dois savoir comment les corriger sans passer par un forum à chaque fois.
Déjà, si tu ne sais pas ce qu'est un NullPointerException, tu vas lire sa documentation :
https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html
Ensuite, tu retrouves la ligne de code concerné, donc ligne 94 de MainActivity :
Ici il n'y a que
À toi maintenant de corriger le code de manière à ne jamais utiliser ton appel
Il faut absolument apprendre à lire une exception, tu en auras très souvent et tu dois savoir comment les corriger sans passer par un forum à chaque fois.
java.lang.NullPointerException at com.zestedesavoir.mapremiereapplication.MainActivity$2.onClick(MainActivity.java:94)
Déjà, si tu ne sais pas ce qu'est un NullPointerException, tu vas lire sa documentation :
https://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html
Ensuite, tu retrouves la ligne de code concerné, donc ligne 94 de MainActivity :
if(group.getCheckedRadioButtonId()==R.id.radioButton1)
Ici il n'y a que
groupqui pourrai provoquer un NPE, cela signifie que
group==null.
À toi maintenant de corriger le code de manière à ne jamais utiliser ton appel
group.getCheckedRadioButtonId()lorsque tu as
group==null.