je tentais d'apprendre en suivant le laboratoire ici https://sites.google.com/site/androidcoursearchive/labs/lab-1Obtenir "Force Close" avec mon premier HelloWorldLogin code android
Voici le code
NameGetter.java
public class NameGetter extends Activity implements OnClickListener {
EditText name;
Button submit;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.name_getter);
name = (EditText) this.findViewById(R.id.editText1);
submit = (Button) this.findViewById(R.id.button1);
submit.setOnClickListener(this);
}
public void onClick(View v) {
String userName = name.getText().toString();
Intent submitIntent = new Intent(NameGetter.this, HelloWorld.class);
submitIntent.putExtra("username", userName);
this.startActivity(submitIntent);
}
}
HelloWorld .java
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = (TextView) this.findViewById(R.id.textViewHello);
Bundle name = this.getIntent().getExtras();
if(name != null) {
String nameEntered = name.getString("username");
if(nameEntered != null) {
tv.setText(nameEntered);
} else {
tv.setText("nameEntered is null");
}
} else {
tv.setText("name is null");
}
}
}
Je peux saisir le texte dans la zone EditText, et lorsque j'appuie sur le bouton submit, j'obtiens une fermeture forcée. LogCat dit comme suit:
java.lang.RuntimeException: Impossible de démarrer l'activité ComposantInfo {com.mypackagerhello.com/com.mypackagerhello.com.HelloWorld}: java.lang.NullPointerException`
EDIT: Merci à tous! C'était la ligne this.setContentView(R.layout.main);
qui manquait à HelloWorld.java.
Avez-vous déclaré HelloWorld dans votre maanifest? – Shrikant
où est setContentView (R.layout.); Bonjour le monde ?? –
Je suppose que vous supposez que la même interface utilisateur est partagée entre deux activités, ce qui est faux. Deux activités utilisent leur propre interface utilisateur, vous devez donc appeler setContentView (R.layout.name_getter); dans HelloWorld Class juste après super.onCreate(). – Sudhaker