2014-08-31 2 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" всегда возвращает ложь, даже когда entered_text является one .; т.е. он никогда не печатает «правильно!» и код всегда печатает «один + введенный_текст», который является выражением в предложении else. И интересным моментом является то, что если вы введете one, вывод будет oneone, то есть инструкция else.

Пожалуйста, помогите мне, где я ошибся. Спасибо заранее.

+0

Используйте 'если (myString.equals ("некоторые строки"))', а не ** == ** оператор , для сравнения строк. –

+0

Большое спасибо. Не знаю, где мой разум. Eezy peezy –

+0

Эй, можете ли вы мне помочь, как использовать строку в переключателе. Я использую java 6 на eclipse. Заранее спасибо. –

ответ

1

Попробуйте

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

вместо

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

Спасибо. Это сработало –

+0

@SurajKamble: - Добро пожаловать. Примите это как ответ, если это вам поможет. Правильная отметка (щелкните по ней, и она станет зеленой) –

0

лучший способ сравнить строку, такую ​​как et.getText(). ToString(). Equals ("one"); также do et.getText(). ToString(). Trim(). Equals ("one"); чтобы избежать пространств ошибку

+0

Спасибо. Это сработало –

Смежные вопросы