0

次のコードを実行するたびに、完全なテキスト フィールドである 1 つのステートメントのみが常に呼び出されます。何が問題なのか教えてください..

public  void save_record()
{
    final String name_val  = name.getText().toString();
    final String pass_val  = password.getText().toString();
    final String cpass_val = cpassword.getText().toString();
    save.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {               
                if(name_val.equals("") || pass_val.equals("") || cpass_val.equals(""))
                {
                    Toast.makeText(getApplicationContext(), "Complete Text Field",Toast.LENGTH_LONG).show();
                }
                else
                {
                        if(pass_val!=cpass_val)
                        {
                            Toast.makeText(getApplicationContext(), "password not Match", Toast.LENGTH_LONG).show();
                        }
                        else
                        {
                            db.insert(name_val, cpass_val);
                            db.close();
                            Toast.makeText(getApplicationContext(), "save", Toast.LENGTH_LONG).show();
                        }
                }        

         }
     });
 }
4

2 に答える 2

0

まず、文字列比較にpass_val!=cpass_valを使用しないでください。

使用する

    if(!pass_val.equals(cpass_val)){
        Toast.makeText(getApplicationContext(), "password not Match", Toast.LENGTH_LONG).show();
    }

次に、アプリをデバッグして、3 つのパス テキストの一部が空になるかどうかを確認します。

于 2013-10-31T16:15:47.577 に答える