2014-08-31 54 views
-1
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

因此,该程序时,在Eclipse上执行不显示任何错误,并运行良好,但运行的时候,if条件et.getText().toString() == "one"始终返回false,即使entered_textone即;它从不打印“正确!”并且代码始终打印作为else子句中的语句的“one + entered_text”。有意思的是,如果输入one,则输出将为oneone,即else语句。

请帮我我哪里出错了。 在此先感谢。

+0

使用'如果(myString.equals( “一些字符串”))',而不是** ** ==操作符,用于字符串比较。 – 2014-08-31 15:17:35

+0

非常感谢。不知道我的头脑在哪里。 Eezy peezy – 2014-08-31 15:23:29

+0

嘿,你能帮助我如何在交换机中使用字符串。我在eclipse上使用java 6。提前致谢。 – 2014-08-31 15:32:10

回答

1

试试这个

if(et.getText().toString().equals(one)){ 

,而不是

if(et.getText().toString() == one){ 
+1

谢谢。它的工作 – 2014-08-31 15:35:14

+0

@SurajKamble: - 不客气。如果这有助于你,请接受这个答案。正确的刻度标记(点击它会变绿) – 2014-08-31 15:37:03

0

更好的方法是比较字符串,比如et.getText()。toString()。equals(“one”); 也做了et.getText()。toString()。trim()。equals(“one”);为了避免空间误差

+0

谢谢。它的工作 – 2014-08-31 15:24:51