2012-03-10 14 views
0

基本上我想要做的是在屏幕上顯示一個隨機表達式,並檢查隨機表達式的答案是否等於用戶輸入的答案,如果其正確顯示「正確」在屏幕上時按#一次,並再次按下#時帶上下一個隨機表達式。如何檢查隨機表達式答案是否等於用戶輸入的數字?

  • 我可以讓它在屏幕上顯示隨機表達式,但無法檢查答案是否正確並顯示「正確」

我有這樣的研究beem整整3天,但得到以下代碼:

package org.example.question; 

import java.util.Random; 



import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class QuestionActivity extends Activity implements View.OnClickListener { 
    int fnum0; 


    /** Called when the activity is first created. */ 

    //variable for different questions 
    int snum0,fnum1, snum1,fnum2, snum2,fnum3, snum3, 
    fnum4, snum4,fnum5, snum5,fnum6, snum6,fnum7, snum7, 
    fnum8, snum8,fnum9, snum9, answer; 


    //variable and type declaration for buttons and text 
Button keyOne; 
Button keyTwo; 
Button keyThree; 
Button keyFour; 
Button keyFive; 
Button keySix; 
Button keySeven; 
Button keyEight; 
Button keyNine; 
Button keyDel; 
Button keyZero; 
Button keyHash; 
Button keySubtract; 
TextView display; 
TextView display1; 
int answer0; 
TextView correct; 
String str; 
int q; 


private int click; 






    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //display text on screen 

     display1 = (TextView)findViewById(R.id.Guess); 
     display = (TextView)findViewById(R.id.Title); 
     correct= (TextView)findViewById(R.id.CORRECT); 

     int operation = (int) ((double) ((Math.random() * 10))); 

     //generate random expression with random operators and display "?" if the answer is one digit or"??" if the answer is greater than  
     fnum0 = (int)((double) (Math.random() * 10)); 
     snum0 = (int)((double) (Math.random() * 10)); 

     if(operation == 0) 
      str = fnum0+ "+" + snum0+ "=" + ((fnum0+snum0<10)? "?" : "??"); 

     else if(operation == 1) 
      str = fnum0 + "-" + snum0+ "=" + ((fnum0-snum0<10)? "?" : "??"); 
     else if(operation == 2) 
      str = fnum0 + "*" + snum0+ "=" + ((fnum0*snum0<10)? "?" : "??"); 
     else 
      str = fnum0 + "/" + snum0+ "=" + ((fnum0/snum0<10)? "?" : "??"); 
     display.setText(str); 
     answer0=fnum0+snum0; 


     ///Code for correct and incorrect 

     //assigning names to each keypad 
     keyOne= (Button) findViewById(R.id.keypad_1); 
     keyTwo= (Button) findViewById(R.id.keypad_2); 
     keyThree= (Button) findViewById(R.id.keypad_3); 
     keyFour= (Button) findViewById(R.id.keypad_4); 
     keyFive = (Button) findViewById(R.id.keypad_5); 
     keySix= (Button) findViewById(R.id.keypad_6); 
     keySeven = (Button) findViewById(R.id.keypad_7); 
     keyEight = (Button) findViewById(R.id.keypad_8); 
     keyNine = (Button) findViewById(R.id.keypad_9); 
     keyZero = (Button) findViewById(R.id.keypad_0); 
     keySubtract = (Button) findViewById(R.id.keypad_subtract); 
     keyHash = (Button) findViewById(R.id.keypad_hash); 
     keyDel = (Button) findViewById(R.id.delete); 

     //setting button to produce an event when each button is pressed 
     keyOne.setOnClickListener(this);  keyTwo.setOnClickListener(this);  keyThree.setOnClickListener(this); 
     keyFour.setOnClickListener(this); keyFive.setOnClickListener(this);  keySix.setOnClickListener(this);  
     keySeven.setOnClickListener(this); keyEight.setOnClickListener(this); keyNine.setOnClickListener(this);  
     keySubtract.setOnClickListener(this); keyHash.setOnClickListener(this); keyDel.setOnClickListener(this); 


} 

    public void onClick(View arg0) { 

     switch(arg0.getId()){ 

     //what happens when hash button is pressed 

     case R.id.keypad_hash: 


      if(click==1 && "CORRECT".equals(display.getText().toString())) 
      { 
       correct.setText("CORRECT"); 
       click=2; 
      } 
      if(click == 2) 
      { 
       display.setText(str); 
      } 
      else if("CORRECT".equals(display.getText().toString())) 
      { 
       fnum0 = (int) ((double) ((Math.random() * 10))); 
       snum0 = (int) ((double) ((Math.random() * 10))); 
      } 
      else; 

      fnum0 = (int) ((double) ((Math.random() * 10))); 
      snum0 = (int) ((double) ((Math.random() * 10)));   

      //generates random number between 0 to 9 with random operators for first and sceond number 

      break; 







     case R.id.keypad_1: 

      String str1 = display.getText().toString(); 
      display.setText(str1.replace("?", "1")); 
     break; 






     case R.id.keypad_2: 
      String str2 = display.getText().toString(); 
      display.setText(str2.replace("?", "2")); 
      break; 

     case R.id.keypad_3: 
      String str3 = display.getText().toString(); 
      display.setText(str3.replace("?", "3")); 
      break; 

     case R.id.keypad_4: 
      String str4 = display.getText().toString(); 
      display.setText(str4.replace("?", "4")); 
      break; 

     case R.id.keypad_5: 
      String str5 = display.getText().toString(); 
      display.setText(str5.replace("?", "5")); 
      break; 

     case R.id.keypad_6: 
      String str6 = display.getText().toString(); 
      display.setText(str6.replace("?", "6")); 
      break; 

     case R.id.keypad_7: 
      String str7 = display.getText().toString(); 
      display.setText(str7.replace("?", "7")); 
      break; 

     case R.id.keypad_8: 
      String str8 = display.getText().toString(); 
      display.setText(str8.replace("?", "8")); 
      break; 

     case R.id.keypad_9: 
      String str9 = display.getText().toString(); 
      display.setText(str9.replace("?", "9")); 
      break; 

     case R.id.delete: 

      break; 

     case R.id.keypad_0: 
      String str0 = display.getText().toString(); 
      display.setText(str0.replace("?", "0")); 
      break; 

     case R.id.keypad_subtract: 
      display.setText("-"); 
      break; 
     } 
     } 

    public void requestFocus() { 
     // TODO Auto-generated method stub 

    } 
} 

感謝您的幫助提前

回答

0

我認爲你是在複雜的事情。我將設置一個簡單的界面,其中包括一個Editable來獲取答案,一個按鈕說你已經輸入了你想要的答案,並且在按鈕的onClick()方法中,檢查可編輯文本並查看是否這是正確的答案。

+0

所以我存儲用戶輸入的變量的答案? – 2012-03-10 00:58:57

+0

不需要,儘管你可以。這真的取決於你。 – PearsonArtPhoto 2012-03-10 01:00:32

+0

我不明白可編輯,我GOOGLE了它,它顯示了我的方法,我必須爲它創建一個單獨的方法嗎? – 2012-03-10 01:03:13

相關問題