【问题标题】:Toasting password textview敬酒密码 textview
【发布时间】:2014-01-16 09:24:38
【问题描述】:

我正在尝试从密码 EditText 中提取一个字符串,但结果显示为空白。

我猜这是因为编辑文本是一种密码类型的字段,并且以某种方式进行了编码,但我不知道如何解决这个问题。

显然我不想在实时应用程序中祝酒密码,这是出于测试目的,但即使在我的非祝酒测试中,它仍然无法正常工作。

这是我的简单代码:

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(); 
           }        
   }

【问题讨论】:

  • 代码到底在哪里?在onClick() 处理程序中?请注意,您从first 获取内容两次并将字符串与== 进行比较,这在大多数情况下不起作用(使用equals())。
  • 好的,现在编辑后代码更有意义了。仍然存在字符串比较问题,使两个 toasts 显示在彼此之上。如果password2 显示为空白,请确保您输入的EditText 实际上与id.password 引用的编辑文本相同。

标签: java android string passwords toast


【解决方案1】:

首先,您向我们展示了两个由passwordvpassword 标识符引用的EditTexts,但从first 标识符引用的另一个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();

其次,在比较字符串时不要使用== 运算符。使用equals()方法...

 vpassword2.equals(password2);

【讨论】:

  • 我不小心输入了错误的edittext名称,忽略它。但是你的 equals() 工作得很好,一切都修好了,谢谢!但是你知道为什么“==”不起作用吗?
  • == 用于参考比较 where as equals() 方法用于验证字符串内容的等价性...有关更多信息,请参阅此处的线程stackoverflow.com/questions/3885753/…
猜你喜欢
  • 2012-03-14
  • 2014-11-11
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多