如果答案是正确的话,当按下keypad_hash时显示“Correct”,当错误时按下“不正确”,当按下keyboard_hash时,我想显示“Correct”,它会转到下一个随机问题。
我的部分XML是
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/Title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:textSize="25dp" />
<TextView
android:id="@+id/Guess"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:text="Guess: "
android:textSize="25dp" />
<TextView
android:id="@+id/Answer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:textSize="25dp" />
<TextView
android:id="@+id/Incorrect"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<TextView
android:id="@+id/CORRECT"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="40dp"/>
Java代码是
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 {
/** Called when the activity is first created. */
//variable for different questions
int fnum0, 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;
TextView answer0;
int q=0;
@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);
answer0 = (TextView)findViewById(R.id.Answer);
//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) {
//Created a new string object
String str = new String();
switch (arg0.getId()) {
//what happens when hash button is pressed
case R.id.keypad_hash:
{
//Generates random numbers
fnum0 = (int) ((double) ((Math.random() * 10)));
snum0 = (int) ((double) ((Math.random() * 10)));
//Generates a random number between 0 to 9 with random operators for first and sceond number.
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 10.
*/
if(operation == 0)
str = fnum0+ "+" + snum0+ "=" + ((fnum0+snum0<10)? "?" : "??");
if("Correct".equals(display.getText().toString()))
{
display.setText("Correct");
}
else
{
display.setText("Incorrect");
}
if(operation == 1)
str = fnum0 + "-" + snum0+ "=" + ((fnum0-snum0<10)? "?" : "??");
if("Correct".equals(display.getText().toString()))
{
display.setText("Correct");
}
else
{
display.setText("Incorrect");
}
if(operation == 2)
str = fnum0 + "*" + snum0+ "=" + ((fnum0*snum0<10)? "?" : "??");
if("Correct".equals(display.getText().toString()))
{
display.setText("Correct");
}
else
{
display.setText("Incorrect");
}
if("Correct".equals(display.getText().toString()))
{
display.setText("Correct");
}
else
{
display.setText("Incorrect");
}
str = fnum0 + "/" + snum0+ "=" + ((fnum0/snum0<10)? "?" : "??");
if("Correct".equals(display.getText().toString()))
{
display.setText("Correct");
}
else
{
display.setText("Incorrect");
}
display.setText(str);
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
}
}
它没有显示“正确”和“不正确”,但当我点击keypad_hash ONCE时,它会转到下一个随机问题。
答案 0 :(得分:2)
根据操作,将代码行替换为:
str = fnum0+ "+" + snum0+ "=" + ((fnum0+snum0<10) ? "?" : "??")
或
str = fnum0+ "*" * snum0+ "=" + ((fnum0*snum0<10) ? "?" : "??")
或 ...
供您参考:
int a = ( b ? c : d );
// is shorthand for:
if ( b )
{
a = c;
}
else
{
a = d;
}
答案 1 :(得分:0)
计算两个随机数和操作后,需要计算答案。然后创建一个新的字符串变量。如果答案是10或更高,请将其设置为“??”否则将其设置为“?”。然后将此变量追加到字符串的末尾而不是“??”你有硬编码。