1

なぜ Android/Java がこれを行っているのかわかりません。私は非常に疲れていて、現時点では文字通り自分で考えることができないので、考えるのはちょっと難しいです。

私は静的関数を作成し、そのようにコードを代入して実行していますが、まだ if ステートメントを通過していないため、それが理由だとは思いません。皆さんはどう思いますか?それは簡単な解決策だと思いますが、私の人生ではそれを理解することはできません.

コード:

public class LogIn extends Activity {
    Button login;
    EditText user;
    EditText pass;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        TextView top = (TextView) findViewById(R.id.textView2);
        EditText user = (EditText) findViewById(R.id.etUser);
        EditText pass = (EditText) findViewById(R.id.etPass);
        CheckBox stay = (CheckBox) findViewById(R.id.cBStay);
        Button login = (Button) findViewById(R.id.btLogin);
        Process();

   }

    private void Process() {
        // TODO Auto-generated method stub
    login.setOnClickListener( new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            String user1 = user.getText().toString();
             String pass1 = pass.getText().toString();
            if(user1 !=null &user1.length()>=1 & pass1 !=null &pass1.length()>=1) {
                ComHelper.SendLogin(user1, pass1);
            }
        }
    });


    }



}

LogCat:

06-03 22:34:01.178: E/AndroidRuntime(2599): FATAL EXCEPTION: main
06-03 22:34:01.178: E/AndroidRuntime(2599): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gta5news.qwuik/com.gta5news.qwuik.LogIn}: java.lang.NullPointerException
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.os.Looper.loop(Looper.java:137)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.ActivityThread.main(ActivityThread.java:4424)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at java.lang.reflect.Method.invokeNative(Native Method)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at java.lang.reflect.Method.invoke(Method.java:511)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at dalvik.system.NativeStart.main(Native Method)
06-03 22:34:01.178: E/AndroidRuntime(2599): Caused by: java.lang.NullPointerException
06-03 22:34:01.178: E/AndroidRuntime(2599):     at com.gta5news.qwuik.LogIn.Process(LogIn.java:32)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at com.gta5news.qwuik.LogIn.onCreate(LogIn.java:26)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.Activity.performCreate(Activity.java:4465)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-03 22:34:01.178: E/AndroidRuntime(2599):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
4

1 に答える 1

6

Process()私は事実としてこれを知っていますが、それはメソッド に 1 行しかないからです。

インスタンス メンバーloginは初期化されていないため、 であるため、メソッドを呼び出すとnullがスローされます。NullPointerExceptionProcess()

メソッドを見ると、「ログイン」をインスタンスメンバーにonCreate()保存するのではなく、ローカルメンバーに保存しています。Button

login = (Button) findViewById(R.id.btLogin);

これで 1 つの問題が解決するはずですが、残りのインスタンス メンバーにも同じ問題が発生します (少なくともuserpass)。

user = (EditText) findViewById(R.id.etUser);
pass = (EditText) findViewById(R.id.etPass);
于 2012-06-04T00:36:13.710 に答える