gpt4 book ai didi

java - 创建安卓问答游戏,无法进行下一个任务。正确回答后

转载 作者:行者123 更新时间:2023-11-29 22:12:17 26 4
gpt4 key购买 nike

1.首先选择一个随机数。

2.随机数对应switch语句中的一个case(琐事问题)

3.案例中每个可能的答案都有一个 onClick()。

4.当选择正确答案(和它对应的onClick)时我希望再次掷骰子并将游戏推进到下一个问题。

5.我的调试日志告诉我这个掷骰子的值。但是,我无法为开关中的相应案例更改 View 。

`public class BeginGame extends Activity  {

Random generator = new Random();
private static final String TAG = "MyActivity";

boolean dupe = true;

boolean done = false;
int intitializedQuestionValue = -2;
final int rows = 3;
final int columns = 25;
final int RIGHT = -2000;
final int WRONG = -1000;
int score = 0;
int num;

//define array of three rows and 25 columns
int[][] questionArray = new int [rows][columns];
int[] questionNumber = new int [25];

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

final Button button0 = (Button) findViewById(R.id.button0);
final Button button1 = (Button) findViewById(R.id.button1);
final Button button2 = (Button) findViewById(R.id.button2);
final Button button3 = (Button) findViewById(R.id.button3);
final TextView text = (TextView) findViewById(R.id.TextView01);

//initialize "dice"
for (int i=0; i<25; i++){
questionNumber[i] = -1;
}


for(int i=0; i < columns; i++)
questionArray[0][i] = intitializedQuestionValue;

//set all questions to answered WRONG
for (int i=0; i <columns; i++)
questionArray[1][i] = WRONG;

rollDice();

loop: while (!done)

switch (num) {
case 0:

text.setText("press Virginia0:");

button0.setText("Alabama");
button0.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Toast.makeText(BeginGame.this, "fail", Toast.LENGTH_SHORT).show(); rollDice();


//questionArray[2][0]= score -2;


}

});
button1.setText("Mississippi");
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(BeginGame.this, "fail", Toast.LENGTH_SHORT).show(); rollDice();


//questionArray[2][0]= score - 2;

}
});


button2.setText("Philadelphia");
button2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Toast.makeText(BeginGame.this, "fail", Toast.LENGTH_SHORT).show(); rollDice();


//questionArray[2][0]= score -2;



}
});

button3.setText("Virginia");
button3.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Toast.makeText(BeginGame.this, "success", Toast.LENGTH_SHORT).show(); rollDice();


//questionArray[1][0]=RIGHT;
//questionArray[2][0]= score + 5;



}
});


break loop;

case 1:

text.setText("press alabama1:");

button0.setText("Alabama");
button0.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
Toast.makeText(BeginGame.this, "success", Toast.LENGTH_SHORT).show(); rollDice();




}
});

button1.setText("Mississippi");
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {


}
});

button2.setText("Philadelphia");
button2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {


}
});

button3.setText("Virginia");
button3.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {


}
});


break loop;

`

最佳答案

您的程序不会以这种方式运行。你要多了解android。

创建 Activity 时会调用 onCreate 方法。即:当它来到前面时。它在 UI 线程上执行:一个与用户交互的线程,不应该被阻塞。所以,你基本上是在用你的循环阻塞 UI 线程(顺便说一下,num 会改变吗?)。

您应该做的是从 onCreate 方法中删除 while 循环。只需使用它来初始化您的 Activity,也许是问题和小部件及其监听器等数据结构。

现在为您的听众提供更多逻辑:单击按钮时更改您的问题并刷新界面以便显示新问题。一直这样做,直到没有问题要问为止。

永远不要阻塞 UI 线程,让它自由以便用户可以使用您的应用。

关于java - 创建安卓问答游戏,无法进行下一个任务。正确回答后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9347140/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com