est-ce mal? TextView displayTextView = (TextView)findViewById(R. id.DisplayTextView);
Tout le monde, je suis un newbie de développement android. Maintenant j'ai une question qui ne peut être résolu par moi-même. Rien de mal avec le code ci-dessous(en particulier la ligne dans le code)?
MainActivity.java:
package com.amaker.ch02.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView displayTextView = (TextView)findViewById(R.id.DisplayTextView); <--Possibly this line
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayTextView.setText("change in the code");
}
}
Exécuter, et j'ai reçu un message dans l'AVD: L'application s'est arrêté de façon inattendue. Merci d'essayer de nouveau. Mais si je n'ai pas affecter displayTextView immédiatement après la déclaration, OIE-je modifier le code comme suit, puis tout va bien.
package com.amaker.ch02.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private TextView displayTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
displayTextView = (TextView)findViewById(R.id.DisplayTextView);
displayTextView.setText("change in the code");
}
}
Pourquoi? Toute différence avec les deux codes?
OriginalL'auteur Searene | 2012-02-01
Vous devez vous connecter pour publier un commentaire.
Le TextView ne fait pas partie de l'activité, en vue de la hiérarchie jusqu'à ce que après l'appel de
setContentView(R.layout.main)
. Lorsque vous déclarez une variable comme ceci:la vue n'existe pas encore, donc
displayTextView
obtient mis ànull
. Ensuite, vous obtenez unNullPointerException
lorsque vous essayez d'appelersetText()
dansonCreate()
.Merci. je l'ai eu.
OriginalL'auteur Ted Hopp
Parce que l'affichage de texte n'est pas le contenu de votre activité et vous essayez de le trouver.. le mode texte est lié à votre activité uniquement sur créer lorsque vous appelez
setContentView()
après avoir défini un contenu à votre activité, vous pouvez obtenirView
s à partir de ce contenu.OriginalL'auteur Cata
De l'essayer.
OriginalL'auteur Raoul George