0

一連のテキスト フィールドと登録ボタンで構成される登録フォームを作成しました。登録ボタンがクリックされると、空のテキスト フィールドがないかチェックし、存在する場合は 0 を返し、アクティビティを再開します。しかし問題は、ボタン クリック イベントが 1 回しか機能しないことです。次にボタンをクリックすると、アプリケーションが閉じます。

ここにコードがあります、

    public class Register extends Activity implements OnClickListener { 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register);

        Button btnRegister=(Button) findViewById(R.id.btnRegisterMe);

        btnRegister.setOnClickListener(Register.this);


    }

@Override

    public void onClick(View v) {
        if(v.getId()==R.id.btnRegisterMe)
        {
            int controlsCheck=CheckForEmptyTextBox();
            if(controlsCheck==0)
            {
                Toast toastSome=Toast.makeText(Register.this, "Check the             error", Toast.LENGTH_SHORT);
                toastSome.show();


            }

        }

    }

        protected int CheckForEmptyTextBox()
    {
        int check;
        EditText txtMobile=(EditText) findViewById(R.id.txtMobile);
        EditText txtUsername=(EditText) findViewById(R.id.txtUsername);
        EditText txtPassword=(EditText) findViewById(R.id.txtPassword);



        if(txtMobile.length()==0)
        {
            txtMobile.setBackgroundColor(Color.RED);

            Toast toastMobile=Toast.makeText(Register.this, "Enter Mobile Number", Toast.LENGTH_SHORT);
            toastMobile.show();

            check=0;

        }

        else if(txtUsername.length()==0)
        {
            txtUsername.setBackgroundColor(Color.RED);
            Toast toastUsername=Toast.makeText(Register.this, "Enter Username", Toast.LENGTH_SHORT);
            toastUsername.show();

            check=0;

        }

        else if(txtPassword.length()==0)
        {
            txtPassword.setBackgroundColor(Color.RED);
            Toast toastPassword=Toast.makeText(Register.this, "Enter Password", Toast.LENGTH_SHORT);
            toastPassword.show();
            check=0;

        }

                else
        {
            check=1;
        }

        if(check==0)
        {

            return check;
        }
        else

        {
            return check;
        }

    }

}

ユーザーがすべてのフィールドに入力していることを保証したいと思います。Androidで同じボタンの複数のクリックイベントを処理する方法を教えてください。

ログデータ::

06-29 18:16:51.997: E/AndroidRuntime(5523): FATAL EXCEPTION: main
06-29 18:16:51.997: E/AndroidRuntime(5523): java.lang.NullPointerException
06-29 18:16:51.997: E/AndroidRuntime(5523):     at com.example.restaurants.Register.CheckForEmptyTextBox(Register.java:74)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at com.example.restaurants.Register.onClick(Register.java:37)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at android.view.View.performClick(View.java:3534)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at android.view.View$PerformClick.run(View.java:14263)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at android.os.Handler.handleCallback(Handler.java:605)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at android.os.Handler.dispatchMessage(Handler.java:92)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at android.os.Looper.loop(Looper.java:137)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at android.app.ActivityThread.main(ActivityThread.java:4441)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at java.lang.reflect.Method.invokeNative(Native Method)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at java.lang.reflect.Method.invoke(Method.java:511)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-29 18:16:51.997: E/AndroidRuntime(5523):     at dalvik.system.NativeStart.main(Native Method)
06-29 18:23:27.667: D/TextLayoutCache(5704): Using debug level: 0 - Debug Enabled: 0
06-29 18:23:27.737: D/libEGL(5704): loaded /system/lib/egl/libGLES_android.so
06-29 18:23:27.797: D/libEGL(5704): loaded /system/lib/egl/libEGL_adreno200.so
06-29 18:23:27.867: D/libEGL(5704): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
06-29 18:23:27.877: D/libEGL(5704): loaded /system/lib/egl/libGLESv2_adreno200.so
06-29 18:23:28.117: D/OpenGLRenderer(5704): Enabling debug mode 0
4

1 に答える 1

0

の 74 行目にヌル ポインタ例外がありますRegister.java。まずそれを修正します。おそらく、この例外が原因で、CheckForEmptyTextBox()ゼロ以外の値が返される可能性があります。

于 2013-06-29T13:23:10.303 に答える