J'essaie d'utiliser dans mon projet Android. J'ai un Activity
qui implémente un Interface
. J'utilise le modèle MVP. Je suis en train d'obtenir le texte du EditText
mais il jette unNe fonctionne pas Butterknife avec une erreur d'exception de pointeur nul
exception de pointeur NULL.
Voici mon code simple.
Gradle dépendances
compile 'com.jakewharton:butterknife:8.8.1'
Mise en page
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.rao.myapplication.LoginActivity">
<EditText
android:id="@+id/etUseName"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/etUseName"/>
<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"
android:onClick="loginClick"
app:layout_constraintTop_toBottomOf="@+id/etPassword"/>
</android.support.constraint.ConstraintLayout>
Activité
package com.example.rao.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.rao.myapplication.Presenter.LoginActivityPresenter;
import com.example.rao.myapplication.View.LoginActivityView;
import butterknife.BindView;
import butterknife.ButterKnife;
public class LoginActivity extends AppCompatActivity implements LoginActivityView {
@BindView(R.id.etUseName)
EditText userNameET;
@BindView(R.id.etPassword)
EditText passwordET;
@BindView(R.id.btnLogin)
Button loginBtn;
private LoginActivityPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ButterKnife.bind(this);
passwordET.setText("abcd"); // Fails here as well
presenter = new LoginActivityPresenter(this);
}
@Override
public void navigateToListActivity() {
}
@Override
public void loginFailed() {
}
public void loginClick(View view) {
Toast.makeText(this, userNameET.getText().toString(), Toast.LENGTH_SHORT).show(); // Fails here
Toast.makeText(this, "test", Toast.LENGTH_SHORT).show();
}
}
Voici l'erreur journal
FATAL EXCEPTION: principale processus: com.example.rao.myapplication, PID: 24847 java.lang.RuntimeException: Impossible de démarrer l'activité ComposantInfo {com.example.rao .myapplication/com.example.rao.myapplication.LoginActivity}: java.lang.NullPointerException: tentative d'invoquer la méthode virtuelle ' vide android.widget.EditText.setText (java.lang.CharSequence)' sur une référence d'objet null at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2927) à android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2988) à android.app.ActivityThread.-wrap14 (ActivityThread.java) à android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1631) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:154) à android.app.ActivityThread.main (ActivityThread.java:6682) à java. lang.reflect.Method.invoke (méthode native) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1520) à com.android.internal.os.ZygoteInit.main (ZygoteInit.java : 1410) Causée par : java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'void android.widget.EditText.setText (java.lang.CharSequence)' sur un objet nul référence d'objet à com.example.rao.myapplication.LoginActivity.onCreate (LoginActivity.java:34) at android.app.Activity.performCreate (Activity.java:6942) à android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1126) at android.app.ActivityThread.performLaunchActivity (ActivityThread. java: 2880) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2988) à android.app.ActivityThread.-wrap14 (ActivityThread.java) at android.app.Activity Thread $ H.handleMessage (ActivityThread.java:1631) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main (ActivityThread.java:6682) à java.lang.reflect.Method.invoke (méthode native) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1520) à com.android.internal .os.ZygoteInit.main (ZygoteInit.java:1410)
Pourriez-vous s'il vous plaît me guider dans la bonne direction sur ce point, s'il vous plaît.
Déposez votre classe LoginActivityView aussi. – Ankita