2017-02-22 7 views
0

私はATMアンドロイドアプリを開発しています。アプリが開くたびにクラッシュします。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"); 
     } 
    } 
} 

注: はここに私のコードで私は私が取得していますどのような例外やエラーを知らないので、私はエミュレータ上でRUMはありません。

+0

、あなたのクラッシュログを投稿してくださいそれ以外の場合は、問題を引き起こしているもの言うことは不可能です。ありがとう –

+0

デバイスで実行している場合は、logcatを表示してください。参照:[残念ながら、MyAppは停止しました。どのように私はこれを解決することができますか?](http://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-this) –

+1

メインスレッドをブロックするように見えます永遠に...良いことではない –

答えて

0
  1. ループが何であるか分かりません。バランスが変わらないので、永遠に走るように見えます。 onCreateメソッドは時間がかかりすぎるべきではありません。私はここでループを削除し、balanceTextを直接新しい値で撤回します。
  2. 数値が文字列リソースIDでない場合、setText(int)がクラッシュします。たぶんあなたは、次のことを意味します:balanceText.setText(String.valueOf(balance));

のonCreateであなたのループ:

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