2017-02-22 34 views
0

Я разрабатываю приложение для Android-андроидов и всякий раз, когда приложение открывается, он падает. Вот мой код:Atm android app

public class MainActivity extends AppCompatActivity { 
    TextView balanceText; 
    EditText input; 
    Button withdrawButton; 
    int balance = 0; 
    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     //Create the random number 
     Random number = new Random(); 
     int balance = number.nextInt(10000); 
     //Initialize the variables 
     balanceText = (TextView)findViewById(R.id.balanceText); 
     input = (EditText)findViewById(R.id.input); 
     withdrawButton = (Button)findViewById(R.id.withdrawButton); 
     do { 
      balanceText.setText(balance); 
     } while (balance > 0); 
    } 
    public void withdraw(View view) { 
     try { 
      String text = input.getText().toString(); 
      int withdrawal = Integer.parseInt(text); 
      balance = balance - withdrawal; 
      if (withdrawal > balance) { 
       balanceText.setText("Insufficient funds"); 
      } 
     } 
     catch (Exception e) { 
      balanceText.setText("Something went wrong"); 
     } 
    } 
} 

Примечание: Я не рому на эмуляторе, так что я не знаю, что исключение или ошибка я получаю.

+0

Пожалуйста, ваши журнал сбоев, в противном случае невозможно сказать, что вызывает проблему. Спасибо –

+0

Если вы работаете на устройстве, покажите нам logcat. См.: [К сожалению, MyApp остановлен. Как я могу это решить?] (Http://stackoverflow.com/questions/23353173/unappro-myapp-has-stopped-how-can-i-solve-this) –

+1

Вроде бы выглядит так, что он блокирует основной поток навсегда ... Нехорошо –

ответ

0
  1. Я не знаю, для чего предназначен цикл. Ищет меня, как будто бежит вечно, потому что баланс не изменится. Метод onCreate не должен занимать слишком много времени. Я бы удалил цикл здесь и изменил balanceText напрямую, чтобы снять с новым значением.
  2. setText (int) сбой, если номер не является идентификатором ресурса строки. Вероятно, вы имеете в виду: balanceText.setText (String.valueOf (баланс));

Ваш цикл в OnCreate:

do { 
    balanceText.setText(balance); 
} while (balance > 0); 

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

  • Нет связанных вопросов^_^