Java 祝酒密码文本视图

Java 祝酒密码文本视图,java,android,string,passwords,toast,Java,Android,String,Passwords,Toast,我试图烤一个字符串,它是从一个密码文本中提取的,但是我的结果是空的 我猜这是因为编辑文本是一个密码类型的字段,它是以某种方式编码的,但我不知道如何绕过这个问题 很明显,我不想在live app中吐司密码,这是为了测试目的,但即使在我的非吐司测试中,它仍然不起作用 以下是我的简单代码: public void SubmitRegistration(View view) { // assign text in fields to string values

我试图烤一个字符串,它是从一个密码文本中提取的,但是我的结果是空的

我猜这是因为编辑文本是一个密码类型的字段,它是以某种方式编码的,但我不知道如何绕过这个问题

很明显,我不想在live app中吐司密码,这是为了测试目的,但即使在我的非吐司测试中,它仍然不起作用

以下是我的简单代码:

public void SubmitRegistration(View view) {

           // assign text in fields to string values
           EditText first = (EditText)findViewById(R.id.first);
           String first2 = first.getText().toString();

           EditText last = (EditText)findViewById(R.id.last);
           String last2 = last.getText().toString();

           EditText display = (EditText)findViewById(R.id.display);
           String display2 = display.getText().toString();

           EditText email = (EditText)findViewById(R.id.email);
           String email2 = email.getText().toString();

           EditText password = (EditText)findViewById(R.id.password);
           String password2 = password.getText().toString();

           EditText vpassword = (EditText)findViewById(R.id.vpassword);
           String vpassword2 = vpassword.getText().toString();   

           Toast.makeText(getApplicationContext(), "password 1 = " + password2, Toast.LENGTH_SHORT).show();
           // if passwords match, send php url

           if(vpassword2 == password2)
           {
               new RequestTask().execute("http://test");       
           }
           else { 
               Toast.makeText(getApplicationContext(), "Passwords do not match!", Toast.LENGTH_SHORT).show(); 
           }        
   }

首先,您向我们展示了由密码ans vpassword标识符引用的两个EditText,但从由第一个标识符引用的不同EditText获取密码文本

也许你想这样做

       EditText password = (EditText)findViewById(R.id.password);
       String password2 = password.getText().toString();

       EditText vpassword = (EditText)findViewById(R.id.vpassword);
       String vpassword2 = vpassword.getText().toString();
其次,在比较字符串时不要使用==运算符。使用相等的方法

 vpassword2.equals(password2);

代码具体在哪里?在onClick处理程序中?请注意,您将从前两次获取内容,并将字符串与==进行比较,而大多数情况下,使用equals是不可行的。仍然存在字符串比较问题,使两个祝酒词显示在彼此的顶部。如果password2显示为空,请确保您输入的EditText实际上与id.password引用的EditText相同。可能是我无意中输入了错误的EditText名称的重复项,请忽略此项。但你们的同龄人工作得很好,都修好了,谢谢!但您知道为什么==不起作用吗?==用于引用比较,其中as equals方法用于验证字符串内容的等效性。。。有关更多信息,请参阅此处的线程