2012-03-10 2 views
0

Я пытаюсь создать простое приложение для Android с помощью eclipse и android sdk (java). У меня есть окно EditText с несколькими ограничениями, но оно сработает, когда поле EditText пусто. Я пробовал столько способы проверки EditText, если он пуст, но он просто хочет работать. Мой код ниже, почему он всегда сбой, когда ящик пуст, он должен быть простым?Проверка, что EditText пуста, сбой приложения

buttonHash.setOnClickListener(new View.OnClickListener(){ 

    public void onClick(View v){ 
     switch(v.getId()){ 
     case R.id.hash_button: 
     TextView msg = (TextView)findViewById(R.id.tell); 
     info = (EditText)findViewById(R.id.entry); 
     anss = info.getText().toString(); 
     //String ans = Double.toString(res); 
     double result = Double.parseDouble(anss); 
     if (res == result){ 
     msg.setText("Correct"); 
     }else 
     if (res != result){ 
      msg.setText("Incorrect"); 
      }else 
     if (info.getText().toString().equals("")){ 
      msg.setText("Empty!"); 
      } 
     }  
    } 
}); 
+0

Почему ты checki ng, чтобы увидеть, является ли строка пустой после ее использования? И какая строка вызывает его, как видно из LogCat? – PearsonArtPhoto

+0

Где находится лодка? –

+0

чувак последние бит сбой я просто хочу показать сообщение «пусто», если текстовое поле пуста – Tacit

ответ

0

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

public void onClick(View v) { 
      if (_text.getText().toString().equals("")) 
       Toast.makeText(getApplicationContext(), "Empty BOX", 5000).show(); 
      else 
       Toast.makeText(getApplicationContext(), _text.getText().toString(), 5000).show(); 

     } 

Thats it .. Попробуйте это ... он будет работать.

0

Первый чек на info.getText() является нулевым

if (info.getText() == null || "".equals(info.getText().toString())){ 
      msg.setText("Empty!"); 
      } 
0

Пожалуйста, обратите внимание, исключение может быть здесь, и исключение NumberFormatException, сог вы пытаетесь разобрать дубль «».

anss = info.getText().toString(); 
     //String ans = Double.toString(res); 
     double result = Double.parseDouble(anss); 

так сделать следующее, чтобы избежать этой проблемы:

double result = 0; 

try{ 

    result = Double.parseDouble(anss); 

}catch(NumberFormatException ex) 
{ 
} 
0

попробовать это я только что добавил окно предупреждения

общественного недействительный OnClick (View v) { если (_text.getText(). ToString(). Равно ("")) {

    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
      builder.setMessage("Text is empty"); 
      builder.setCancelable(true); 
      builder.setPositiveButton("OK", 
        new DialogInterface.OnClickListener() { 

         @Override 
         public void onClick(DialogInterface dialog, int id) { 
          // TODO Auto-generated method stub 
          dialog.cancel(); 
         } 
        }); 
      builder.create().show(); 

      } 

      else 
       Toast.makeText(getApplicationContext(), _text.getText().toString(), 5000).show(); 

     } 
0

значение EditText никогда не будет аннулирована ..

Используйте его следующим образом:

if ((info.getText().toString().trim().getLength() == 0) && ("").equals(info.getText().toString().trim())){ 
      msg.setText("Empty!"); 
      } 
     } 
Смежные вопросы