public void click(View view) {
String one = "one";
EditText et = (EditText)findViewById(R.id.editText1);
String entered_text = et.getText().toString();
if(et.getText().toString() == one){
TextView tv1 = (TextView)findViewById(R.id.textView1);
tv1.setText("Correct!");
}
else {
TextView tv = (TextView)findViewById(R.id.textView1);
tv.setText(one+entered_text); }
}
这是从我的程序中提取的代码片段,我没有发布整个程序,因为它没有必要,因为程序运行良好,没有任何运行时异常。
因此,在Eclipse上执行的程序没有显示任何错误并且运行正常,但在运行时,if
条件et.getText().toString() == "one"
总是返回false,即使entered_text
是one
ie;它从不打印"正确!"并且代码总是打印" one + entered_text"这是else子句中的语句。有趣的是,如果输入one
,输出将为oneone
,即else语句。
请在我出错的地方帮助我。 提前谢谢。
答案 0 :(得分:1)
试试这个
if(et.getText().toString().equals(one)){
而不是
if(et.getText().toString() == one){
答案 1 :(得分:0)
更好的方法是比较字符串,如et.getText()。toString()。equals(" one"); 也做et.getText()。toString()。trim()。equals(" one");避免空格错误