2014-08-31 38 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