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