2013-01-18 64 views
1

我幾乎是一個新手在這個,所以我可以使用一些幫助,知道爲什麼我的應用程序不斷崩潰?我嘗試了很多方法,這是迄今爲止最好的。Android應用程序崩潰,按鈕或條件將不起作用?

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final TextView lastAnswer = (TextView) findViewById(R.id.textView5); 
    final TextView answerLabel = (TextView) findViewById(R.id.textView1); 
    final TextView answerLabel1 = (TextView) findViewById(R.id.textView2); 
    final TextView answerLabel2 = (TextView) findViewById(R.id.textView3); 
    final EditText enteredNumber = (EditText) findViewById(R.id.editText1); 
    Button getAnswerButton = (Button) findViewById(R.id.button1); 

    getAnswerButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
     public void onClick(View arg0) { 
       Random randomGenerator = new Random(); 
        //rand gene 
        int randomNumber2 = randomGenerator.nextInt(99); 
         int randomNumber = randomGenerator.nextInt(99); 

      String number = ""; 
      String number2 = ""; 
      String jtext = " Times "; 
      number2= Integer.toString(randomNumber2); 
      number= Integer.toString(randomNumber); 
      answerLabel.setText(jtext); 
      answerLabel1.setText(number2); 
      answerLabel2.setText(number); 

      String content = enteredNumber.getText().toString(); 

當我發表意見的條件應用程序工作正常,但是那不是我想要的一切 我想這個問題是在有條件的,但我似乎無法找到它。 沒有錯誤,所以永遠在日食。

  if (content != null){ 
       int anInt=Integer.parseInt(content); 
       int result= randomNumber2 *randomNumber; 

        if(anInt == result){ 

         Context context =getApplicationContext(); 
          CharSequence text = "That's correct!!"; 
          int duration = Toast.LENGTH_SHORT; 
          Toast toast = Toast.makeText(context, text, duration); 
          toast.show(); 

        } else{ 

        Context context = getApplicationContext(); 
        CharSequence text = "That's not correct"; 
        int duration = Toast.LENGTH_SHORT; 
        Toast toast = Toast.makeText(context, text, duration); 
        toast.show(); 
        } 
        lastAnswer.setText(content); 
      } 

      } 
     });} 

那麼什麼即時試圖在這裏做(介意小白代碼)剛剛生成2件隨機數,顯示他們,然後讓用戶輸入的結果進行比較,通知如果正確與否,然後再生..我一直在這工作幾天

任何幫助表示讚賞,即使是新的方式來跟隨此代碼。謝謝。

+6

請添加堆棧跟蹤和註釋以顯示哪條線路崩潰。 – MCeley

+0

crash => stacktrace或關閉問題 – njzk2

+0

您是否要求用戶猜測輸入答案後您將選擇的2個隨機數的結果?這似乎不太正確 – njzk2

回答

1

你或許應該與周圍一個try/catch您分析的解決方案。用戶輸入被解析回數字可能不總是工作 - 尤其是使用EditTexts。更改

int anInt=Integer.parseInt(content); 

所以這是

int anInt= -1; 
    try{ 
    anInt = Integer.parseInt(content); 
    } 
    catch (NumberFormatException e) 
    { 
    //Show toast or dialog 
    } 

而且使生活更輕鬆,你應該做的EditText accept in only numbers

+0

這也是一個好主意,一般來說。 – dmon

+0

我試過這個,你可以更具體些嗎? – Dori

+1

@ user1990939哪部分?將int設置爲默認值(例如-1),然後嘗試解析,如果失敗,catch塊將被執行,其中可以包含任何您想要的內容。當然,如果解析失敗,您可能想要停止執行(通過布爾或返回語句)。 –

-1

清理項目添加評論後,它再次

將編輯答案來看,如果這是不是你

0

嗯....你爲什麼使用應用程序上下文來顯示敬酒?我記得在同一個問題上看到最近的一個問題。嘗試使用活動上下文(MainActivity.this)。