Ich versuche, die Sinch Android SDK in meinem Projekt zu integrieren, und ich wollte die Anmeldeschaltfläche entfernen, d. H. So, dass die Aktivität zur nächsten Aktivität wechselt, ohne dass der Benutzer auf die Schaltfläche Anmelden klicken muss. Dazu habe ich den Code für setOnClickListener
für die mLoginButton
entfernt und stattdessen direkt die loginClicked()
-Funktion aufgerufen, die zuvor aus der onClick()
-Methode aufgerufen wurde.
Aber das verursacht NullPointerException: Attempt to invoke virtual method 'boolean com.example.yankee.cw.SinchService$SinchServiceInterface.isStarted()' on a null object reference
.
Dies sind die einzigen Änderungen, die ich an den Code vorgenommen:Android - Warum ruft diese Funktion direkt anstelle von onClick eine NullPointerException auf?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
mLoginName = (EditText) findViewById(R.id.loginName);
mLoginButton = (Button) findViewById(R.id.loginButton);
mLoginButton.setEnabled(false);
// mLoginButton.setOnClickListener(new OnClickListener() {
// @Override
// public void onClick(View v) {
// loginClicked();
// }
// });
loginClicked();
}
Und früher war es diese wie: Statt
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
mLoginName = (EditText) findViewById(R.id.loginName);
mLoginButton = (Button) findViewById(R.id.loginButton);
mLoginButton.setEnabled(false);
mLoginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
loginClicked();
}
});
}
Warum diese Arbeit nicht und die NullPointerException
gibt?
Edit: LoginActivity.java
bieten loginClicked() -Methode – Ishan
Es ist bereits vorgesehen, wobei der Rest des Codes nach wie vor gleich ist. Tut mir leid, ich habe es nicht verlinkt. Ich habe den Link jetzt hinzugefügt. – Yankee
@Yankee Bitte geben Sie die loginClicked() - Methode für das Verständnis des Problems. – LoveAndroid