密码和确认密码验证Android不工作

密码和确认密码验证Android不工作,android,android-intent,Android,Android Intent,我有两个页面。我试图通过Bundle传递密码字段值,并用ConfirmPassword字段检查该值。验证不起作用。我可以知道实现我的目标的正确方法吗?也许这个问题太基本了,但我没有找到任何合适的解决方案。请帮我解决 这是我的密码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(

我有两个页面。我试图通过Bundle传递密码字段值,并用ConfirmPassword字段检查该值。验证不起作用。我可以知道实现我的目标的正确方法吗?也许这个问题太基本了,但我没有找到任何合适的解决方案。请帮我解决

这是我的密码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_passcode);

        EditTextUserPass= (EditText) findViewById(R.id.UserHiddenPass);
        EditTextUserPass.setVisibility(View.GONE);

        Imagepassone = (ImageButton) findViewById(R.id.ButtonPassOne);
        Imagepasstwo = (ImageButton) findViewById(R.id.ButtonPassTwo);

        Imagepassone.setOnClickListener(imgButtonHandlerone); 
        Imagepasstwo.setOnClickListener(imgButtonHandlertwo); 


        image = (ImageView) findViewById(R.id.imagefirstpasscode);
        image2 = (ImageView) findViewById(R.id.imagesecondpasscode);
        image3=(ImageView)findViewById(R.id.imagethirdpasscode);
        image4=(ImageView)findViewById(R.id.imagefourpasscode);

    }


    View.OnClickListener imgButtonHandlerone = new View.OnClickListener() {


        public void onClick(View v) { 

            if(v.getId() == R.id.ButtonPassOne) {

                nbStep++;

                changeStepBackground(nbStep);
            }
        }
   };
   public void changeStepBackground(int i) { 
        // four step switch
        switch(i) {
            case 1:
                image.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("1");

            break;
            case 2:
                image2.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("1");
            break;
            case 3:
                image3.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("1");
            break;
            case 4:
                image4.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("1");
            break;


        }
    }

   View.OnClickListener imgButtonHandlertwo = new View.OnClickListener() {



    public void onClick(View v) { 

           if(v.getId() == R.id.ButtonPassTwo) {

               nbStep++;

               changeStepBackground2(nbStep);
           }
       }
  };
  public void changeStepBackground2(int i) { 

        switch(i) {
            case 1:
                image.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("2");
            break;
            case 2:
                image2.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("2");
            break;
            case 3:
                image3.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("2");
            break;
            case 4:
                image4.setImageResource(R.drawable.passselect);
                EditTextUserPass.setText("2");
            break;


        }
    }

}
    @Override
    public void onBackPressed() {
       moveTaskToBack(true); 
       UserPasscode.this.finish();
    }

    public void gotoconfirmpasscode(View v)

    {
        String UserPass=EditTextUserPass.getText().toString();  
        int numberOfImages=nbStep;
        if(numberOfImages!=4)
        {   
        }
        else
        { 

             Bundle b = new Bundle();
             b.putString("PASSWORD", UserPass);

        Intent intent = new Intent(UserPasscode.this,UserConfirmPasscode .class);
        intent.putExtras(b);
        startActivity(intent);
        }       

    }
}
第2页:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_confirm_passcode);
        EditTextUserConfirmPass= (EditText) findViewById(R.id.UserHiddenConfirmPass);
        EditTextUserPass= (EditText) findViewById(R.id.UserHiddenPass);
        EditTextUserConfirmPass.setVisibility(View.GONE);

        UserHiddenConfirmPass2= (EditText) findViewById(R.id.UserHiddenConfirmPass2);
        UserHiddenConfirmPass2.setVisibility(View.GONE);

        Imagepassone = (ImageButton) findViewById(R.id.ButtonPassOne);
        Imagepasstwo = (ImageButton) findViewById(R.id.ButtonPassTwo);

        Imagepassone.setOnClickListener(imgButtonHandlerone); 
        Imagepasstwo.setOnClickListener(imgButtonHandlertwo); 


        image = (ImageView) findViewById(R.id.imagefirstpasscode);
        image2 = (ImageView) findViewById(R.id.imagesecondpasscode);
        image3=(ImageView)findViewById(R.id.imagethirdpasscode);
        image4=(ImageView)findViewById(R.id.imagefourpasscode);
    }

View.OnClickListener imgButtonHandlerone = new View.OnClickListener() {


        public void onClick(View v) { 

            if(v.getId() == R.id.ButtonPassOne) {

                nbStep++;

                changeStepBackground(nbStep);
            }
        }
   };
   public void changeStepBackground(int i) { 
        // four step switch
        switch(i) {
            case 1:
                image.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("1");
            break;
            case 2:
                image2.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("1");
            break;
            case 3:
                image3.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("1");
            break;
            case 4:
                image4.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("1");
            break;


        }
    }

   View.OnClickListener imgButtonHandlertwo = new View.OnClickListener() {



    public void onClick(View v) { 

           if(v.getId() == R.id.ButtonPassTwo) {

               nbStep++;

               changeStepBackground2(nbStep);
           }
       }
  };
  public void changeStepBackground2(int i) { 

        switch(i) {
            case 1:
                image.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("2");
            break;
            case 2:
                image2.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("2");
            break;
            case 3:
                image3.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("2");
            break;
            case 4:
                image4.setImageResource(R.drawable.passselect);
                EditTextUserConfirmPass.setText("2");
            break;


        }
    }
                                        }

    public void gotoMain(View v)
    {
        Bundle b = getIntent().getExtras();
        String venName = b.getString("PASSWORD"); 
        UserHiddenConfirmPass2.setText(venName);

        Bundle c = new Bundle();
        String UserPass=c.getString("CONFIRMPASSWORD");
        EditTextUserConfirmPass.setText(UserPass);

        c.putString("CONFIRMPASSWORD", EditTextUserConfirmPass.getText().toString());

        int numberOfImages=nbStep;
        if(numberOfImages!=4 )
        {   
        }

        if(!venName.equals(UserPass)){

        }

        else{

        Intent intent = new Intent(this,MainActivity .class);
        startActivity(intent);  
        }
    }
}
尝试替换ifvenName=如果有,请通过!venName.equalUserPass。 这是比较字符串的正确方法。

尝试替换ifvenName=如果有,请通过!venName.equalUserPass。
这是比较字符串的正确方法。

字符串比较是错误的。始终将字符串与.equals方法进行比较。 更改此项:

if(venName!=UserPass)
为此:

System.out.println("venName :: "+venName);
System.out.println("UserPass :: "+UserPass);
if(!venName.equals(UserPass))

字符串比较是错误的。始终将字符串与.equals方法进行比较。 更改此项:

if(venName!=UserPass)
为此:

System.out.println("venName :: "+venName);
System.out.println("UserPass :: "+UserPass);
if(!venName.equals(UserPass))

为什么不在单一活动中尝试使用2个密码字段

像吼叫

login.xml
为什么不在单一活动中尝试使用2个密码字段

像吼叫

login.xml ==运算符用于比较字符串对象引用。如果两个字符串变量指向内存中的同一对象,则比较返回true

当我们需要比较对象中存在的文本内容时,使用该方法。当两个对象具有相同的内容(即相同的值)时,此方法返回true

要比较两个字符串是否相等,请使用equals。它有以下一般形式:

boolean equals(Object str)
这里,str是与调用字符串对象进行比较的字符串对象。如果字符串包含相同顺序的相同字符,则返回true,否则返回false

逻辑礼貌

==运算符用于比较字符串对象引用。如果两个字符串变量指向内存中的同一对象,则比较返回true

当我们需要比较对象中存在的文本内容时,使用该方法。当两个对象具有相同的内容(即相同的值)时,此方法返回true

要比较两个字符串是否相等,请使用equals。它有以下一般形式:

boolean equals(Object str)
这里,str是与调用字符串对象进行比较的字符串对象。如果字符串包含相同顺序的相同字符,则返回true,否则返回false

逻辑礼貌


我用过如果!equalUserPass{}但是,请输入日志并检查这两个字符串变量的值。并用上述问题中的值发布logcat快照。女士。请检查我的答案,如果我用的话!equalUserPass{}但是,请输入日志并检查这两个字符串变量的值。并用上述问题中的值发布logcat快照。女士。请检查我的答案这个答案与我的问题无关这个答案与我的问题无关