2017-04-01 86 views
0

我正在嘗試爲卡片遊戲製作一個基本的骰子滾輪。它在兩個的第二個屏幕上。當我按下按鈕打開它時,屏幕會打開,但是當我點擊骰子按鈕時,應用程序就會崩潰。我正在使用最新版本的Android Studio。這裏是我的代碼:爲什麼當我按下按鈕時,我的應用程序崩潰,以及如何修復它

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 
import android.widget.TextView; 
import java.util.Random; 
import static android.R.attr.value; 

public class Extras extends AppCompatActivity implements OnClickListener{ 

    Button btn1; 
    TextView numberGenerator; 

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


     btn1 = (Button) findViewById(R.id.diceButton); 

     btn1.setOnClickListener(this); 
     numberGenerator = (TextView)findViewById(R.id.numberGenerator); 

    } 


    @Override 

    public void onClick(View v) { 
     int min = 1; 
     int max = 6; 
     Random random = new Random(); 
     int value = random.nextInt(max - min) + min; 
     numberGenerator.setText(value+""); 

     if (v == btn1) { 
      numberGenerator.setText(value); 
     } 

    } 
    ... 
} 
+1

通常,當應用程序「崩潰」時,它會顯示錯誤消息或異常消息。如果你的是這樣的話,你會想和我們分享一下。 –

+1

一個有用的閱讀新的Android開發http://stackoverflow.com/questions/23353173/uncomfort-myapp-has-stopped-how-can-i-solve-this – trooper

回答

2

你的應用程序崩潰,因爲你試圖將int值置於setText()方法。

這裏:

if (v == btn1) { 
    numberGenerator.setText(value); 
} 

嘗試,而不是:

if (v == btn1) { 
    numberGenerator.setText(String.valueOf(value)); 
} 

如果不交你的堆棧跟蹤工作。

+0

我會認爲這是一種編譯器類型的投訴 – efekctive

+0

這回答了它。 'setText'被重載以獲取'int'資源標識符,所以你不能只傳遞任何舊的'int'。 https://developer.android.com/reference/android/widget/TextView.html#setText(int) – trooper

相關問題