Das ist nicht die übliche Frage, die alle anderen gestellt haben, ich weiß, wie man den Wert von EditText
bekommt. Ich erstelle eine Anmeldung/Anmeldung für meine App. Ich möchte, dass die Benutzeranmeldedaten von einer separaten Klasse/einem separaten Paket abgerufen werden und der Benutzer Daten mit einer separaten Klasse/Paket anmeldet. HINWEIS: Diese Klasse ist keine Aktivität, sondern erweitert AppCompatActivity
, um die Verwendung von findViewById
zu ermöglichen. Wie erhalten Sie Werte von EditText von einer anderen Klasse in Android?
Dies ist die UserSignUpData.class mit nur einem get-Method
, wie es nach
public class UserSignUpData extends AppCompatActivity {
public String getSignUpFullName() {
EditText et = (EditText) findViewById(R.id.signup_name); //NullPointerException
String fn = et.getText().toString();
return fn;
}//end getSignUpFullName()
Start abstürzt und ich rufe die onClick(signup)
Methode, die ich von dem MainActivity.class im Layout erklärt wie diese
public class MainActivity extends AppCompatActivity {
public void signUp(View v){
UserSignUpData signUpData = new UserSignUpData();
String name = signUpData.getSignUpFullName();
Toast.makeText(MainActivity.this, ud.getSignUpFullName(), Toast.LENGTH_SHORT).show();
//just to test if it works
}
So habe ich am Ende eine Nullpointer bekommen, die
EditText et = (EditText) findViewById(R.id.signup_name);
zu
Punkte
Dies ist der Fehlercode:
FATAL EXCEPTION: main java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:72)
at android.support.v7.app.AppCompatDelegateImplV7.<init>(AppCompatDelegateImplV7.java:146)
at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:28)
at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:41)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:193)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:173)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:511)
at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:183)
at com.example.pc_charlie.loginapp.UserSignUpData.getSignUpFullName(UserSignUpData.java:12)
at com.example.pc_charlie.loginapp.MainActivity.signUp(MainActivity.java:52)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
ich auch falsch sein könnte darüber ein Nullpointer, aber die einige Fehler, das ist sein Code arbeiten zu stoppen. danke
"AppCompatActivity erstreckt sich die Verwendung von findViewById zu ermöglichen" - Ich glaube nicht, dass Sie verstehen, wie 'findViewById' funktioniert. Sie können keine Ansichten über andere Aktivitäten einfach so finden. –