2017-10-20 28 views
-4

J'ai ce code dans Activity.java:setText() fonctionne pas

public void scan(View view){ 
    EditText text = (EditText) findViewById(R.id.editText3); 
    text.setText("asdas"); 
} 

et ce xml d'activité:

<Button 
    android:id="@+id/button" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:onClick="scan" 
    android:text="Scane" 
    android:textColor="#fff" 
    android:layout_marginStart="8dp" 
    android:layout_marginEnd="8dp" 
    tools:layout_editor_absoluteY="271dp" 
    tools:layout_editor_absoluteX="8dp" /> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:inputType="textPersonName" 
    android:text="Name" 
    tools:layout_editor_absoluteX="89dp" 
    tools:layout_editor_absoluteY="165dp" /> 

Lorsque, cliquez sur le bouton du crash de l'application avec:

Attempt to invoke virtual method 'void 
android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference 

Pourquoi, j'utilise Android Studio dernière version ??

+0

Texte d'édition = (EditText) view.findViewById (R.id.editText3); et vérifiez également votre texte d'édition d'identification dans la même activité ou autre – RejoylinLokeshwaran

Répondre

0

semble que findViewById renvoie null: c'est-à-dire qu'il ne trouve pas votre texte d'édition pour une raison quelconque.

peut-être il vous suffit de reconstruire le projet: Build-Rebuild Project

sinon vous avez foiré quelque chose d'autre et doit afficher plus d'informations

0

Mettez ce code dans la méthode EditText initialisation onCreate.

EditText text; 
protected void onCreate(Bundle savedInstanceState) { 
text = (EditText) findViewById(R.id.editText3); 
} 

public void scan(View view){ 
    text.setText("asdas"); 
} 
0

Votre findViewById renvoie null car il n'a pas le contexte. Je pense que vous passez view objet pour le contexte mais ne l'utilisez pas. Essayez de changer

EditText text = (EditText) findViewById(R.id.editText3); 

à

EditText text = (EditText) view.findViewById(R.id.editText3); 
0

Dans le code ci-dessous, vous obtenez l'objet EditText lié

EditText text = (EditText) findViewById(R.id.editText3); 

Ensuite, vous avez appelé la méthode setText() de cet objet, mais prendre référence d'objet null

text.setText("asdas"); 

Cela signifie que vous ne pouvez pas obtenir l'objet EditText correctement. Ainsi, l'origine de l'erreur provoque de la ligne ci-dessous:

EditText text = (EditText) findViewById(R.id.editText3); 

S'il vous plaît assurez-vous d'appeler la méthode de balayage() dans le contexte. Essayez de l'invoquer à l'intérieur de la méthode onCreate(). Si vous appelez la méthode findViewById() à partir d'un emplacement différent, assurez-vous de l'invoquer dans le bon contexte.