2015-01-21 2 views
-2

Я работаю над приложением, которое принимает вход от пользователя и добавляет его в список в Android.Почему эта часть моего кода не соответствует циклу?

Я решил создать элемент управления, чтобы пользователь не добавлял пустые строки в список, так как он бесполезно загромождал экран. Я написал для этого код.

public void addClaims(View v){ 
    ClaimListController ct = new ClaimListController(); 
    EditText textView = (EditText) findViewById(R.id.add_claim_field); 
    String added = textView.getText().toString(); 

    if (added != ""){ 
     final String t = format("added",added); 
     ct.addClaim(new Claim(added)); 
     Toast.makeText(this, t, Toast.LENGTH_SHORT).show(); 
     textView.setText(""); 
     //Intent intent = new Intent(MainActivity.this, AddClaim.class); 
     //startActivity(intent); 
    }else{ 
     Toast.makeText(AddClaim.this,"Please type something before adding", Toast.LENGTH_SHORT).show(); 
    } 
} 
private String format(String string, String added) { 
    String formats = string +" "+ added; 
    return formats; 
} 

однако, цикл if(){} никогда не проверяется. Я попытался изменить пустую строку на «тест» и добавить тест в приложение, и он все еще работал. что вызывает код НЕ проверять условия IF и ELSE?

Я не спрашиваю, как сравнивать строки. Я спрашиваю, почему эта проблема возникает. мне не приходило в голову, что это была проблема сравнения строк.

+0

вы также можете проверить его длину, т.е. textView.getText(). Длина> 0 – Pavya

ответ

1

Состояние, которое вы используете, не возвращается true. Используйте вместо этого:!

if (!TextUtils.isEmpty(added)) 
+0

благодаря этим работали. –

0

При использовании оператора = на объект любого типа вы сравниваете ссылки и так как вы создаете новый экземпляр в Условный оператор ссылки всегда будет отличаться.

Вы можете использовать это вместо if(added.equals(""))

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