Java 比较TextView和EditText值
我试图将EditText值与TextView进行比较,但总是得到“不匹配!” 这是比较两个值的错误方法吗 例如:我在TextView中存储了win,并在EditText中输入了相同的win,但获取不匹配Java 比较TextView和EditText值,java,android,Java,Android,我试图将EditText值与TextView进行比较,但总是得到“不匹配!” 这是比较两个值的错误方法吗 例如:我在TextView中存储了win,并在EditText中输入了相同的win,但获取不匹配 EditText editPassword; String strPassword; TextView lblPassword; String password; String strMatch; @Override public voi
EditText editPassword;
String strPassword;
TextView lblPassword;
String password;
String strMatch;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.single_list_item);
editPassword = (EditText) findViewById(R.id.editPassword);
strPassword = editPassword.getText().toString();
// getting intent data
Intent in = getIntent();
password = in.getStringExtra(TAG_PASSWORD);
lblPassword = (TextView) findViewById(R.id.password_label);
lblPassword.setText(password);
strMatch= lblPassword.getText().toString();
btnSubmit = (Button) findViewById(R.id.btnSubmit);
btnSubmit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if(strPassword.equals(strMatch))
{
Toast.makeText(getApplicationContext(), "Match !",
Toast.LENGTH_LONG).show();
editPassword.setText(null);
}
else
{
Toast.makeText(getApplicationContext(), "Does not match !",
Toast.LENGTH_LONG).show();
}
}
});
}
在
Buttton
strPassword = editPassword.getText().toString();
显示您的edittext值为空字符串表示使用
strPassword = editPassword.getText().toString();
onClick()事件内部的行
想想你台词的顺序。首先在开始时为strPassword和strMatch分配一次,然后更改基础控件(甚至可以通过在GUI中编辑某些内容),但是onClick()方法仍然会比较最初存储在strPassword和strMatch中的值 试着替换
if(strPassword.equals(strMatch))
与
(或者将toString()
附加到每个,我不记得是否需要toString()
。尝试下面的代码
if(strPassword.trim().equals(strMatch.trim()))
只是一句建议。了解如何在代码中设置断点并在调试模式下运行应用程序。这将允许您在应用程序运行时检查变量值,并了解它们不匹配的原因。请参阅此处的最佳解决方案。@kalyanpvs oop yes我同意,但为什么在onClick(…)中第一次edittext中没有数据..输入数据后,您将按下按钮..现在edittext中有数据..您得到的是..ohhh…onCreate()中的是EditText的初始值为空,因此如何能够与其他字段匹配,而不将任何数据输入EditText…无论如何,感谢您的帮助从EditText获取数据后,您只能执行所需的操作。在此之前,您不能..或者您可以直接使用硬编码设置数据。。
if(strPassword.equals(strMatch))
if(editPassword.getText().equals(lblPassword.getText()))
if(strPassword.trim().equals(strMatch.trim()))