2012-05-20 53 views
2

任何人都可以請說出爲什麼if聲明從未得到執行,即使我在編輯文本字段中輸入ran並按ok?當用戶輸入ran並按下按鈕ok,我想讓另一個按鈕變得可見,這使得他能夠停止當前活動。基本上我想知道爲什麼if被跳過。如何在Android中正確執行?

public class Reciever extends Activity{ 

    protected static final String TAG = null; 
    private Button ok,stp; 
    private TextView tv; 
    private EditText ev; 
private String s1,s2,s3,s4; 
@Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     s1="nar"; 
     setContentView(R.layout.stop); 
     tv=(TextView) findViewById(R.id.textView1); 
     tv.setText(s1); 

     ev=(EditText) findViewById(R.id.editText1); 
    ok=(Button) findViewById(R.id.ok_button); 
    ok.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      s2="ran"; 
      tv.setText(ev.getText().toString()); 
      s3=ev.getText().toString(); 
      if(s3==s2)//not going inside this loop 
      { 
      stp=(Button) findViewById(R.id.stopb); 

      stp.setVisibility(View.VISIBLE); 
      stp.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
       finish(); 
       } 
      }); 

     } 

    } 
    }); 
    } 
    } 
+0

它不叫'if循環'。這是一個'if語句'。它不會創建一個循環。 –

+0

對不起,我的壞... –

回答

1
if(s3==s2)//no 

只是下面

if(s3.equalsIgnoreCase(s2))//no 
+0

它迫使活動終止說線程退出與未捕獲的異常 –

+0

它是因爲你正在寫一個點擊事件內另一個單擊事件 –

+0

是一個愚蠢的錯誤,感謝它的工作 –

1

使用.equals,而不是==替換上面的線來比較兩個字符串的值。

if (s2.equals(s3)) 

使用==測試參考相等。兩個字符串可以包含相同的字符,但具有不同的引用。

+0

大聲笑,我只是感到驚訝我們4人在同一時間得到它= p – FoamyGuy

+0

感謝它的工作 –

1

你不能用==比較文本,你需要使用equals。

if(s3.equals(s2))