2017-02-03 4 views
-3

Я новичок в разработке Android и пытался сделать приложение с приведенным ниже кодом, но как только я нажимаю кнопку «Счет», приложение падает. Я попытался добавить сообщение Toast в методе OnClick для кнопки «Оценка», чтобы предотвратить это, но кажется, что я не могу получить int и String из одного и того же EditText в методе onClick (он закрывает приложение, когда я это делаю так). Следующие коды были опробованы, но не повезло. Итак, может ли кто-нибудь помочь мне с правильным кодом, чтобы предотвратить сбой приложения, когда EditText пуст? Я попробовал приведенный ниже тестовый код, но проблема осталась прежней.Как предотвратить остановку приложения с помощью EditText (для чисел) пуст?

displayScore1.getText().toString().equals("") 
displayScore1.getText().toString().matches("") 
displayScore1.getText().length() != 0 

package com.example.android.test; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import org.w3c.dom.Text; 

public class MainActivity extends AppCompatActivity { 

    int score1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button test = (Button)findViewById(R.id.button); 
     test.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       EditText displayScore1 = (EditText) findViewById(R.id.score); 
       score1 = Integer.parseInt(displayScore1.getText().toString()); 

       if (!displayScore1.getText().toString().trim().isEmpty()){ 
        displayText(score1); 
       } 
       else{ 
        Toast.makeText(MainActivity.this, "Please enter the Number of Tricks", Toast.LENGTH_SHORT).show(); 
       } 
      } 
      }); 
    } 

    public void displayText(int message){ 
     TextView display = (TextView)findViewById(R.id.text); 
     display.setText("" + message); 
    } 


} 

ответ

0

Попробуйте как этот

displayScore1.getText().toString().trim().length()==0{ 
//your code 

} 
+0

Не работает :(Это потому, что я не могу извлечь два различных значения из той же точки зрения под OnClick? Потому что если я поворачиваю метод, чтобы получить только строки, он отлично работает. Но дело в том, , основной тип, на который я нацелился, это Edittext Int. – user7440913

1

Вы можете использовать любой подход, но нужно знать с пробелами и новых линий. Один пример показан ниже.

if(!displayScore1.getText().toString().trim().isEmpty()){ 
// edittext has some thing 
}else{ 
//do what you want to do when edittext is empty 
} 
+0

К сожалению, это не сработало. Я вставил над тестовым кодом, который я использовал, чтобы продемонстрировать, что я делаю. Пожалуйста, дайте мне знать, если я что-то пропустил в синтаксисе. – user7440913