gpt4 book ai didi

java - 如何在按钮中使用模数并设置点击限制?

转载 作者:太空宇宙 更新时间:2023-11-04 11:59:43 25 4
gpt4 key购买 nike

如何为标记为帮助的按钮设置限制点击?我使用模运算符(即 %)来划分分数 - 对于每 5 个正确答案,帮助按钮将添加加 1 并调用 .setEnabled(true),如果帮助按钮值等于 0,该按钮将被禁用。这是我用于更改帮助按钮状态的代码。帮助按钮的用途是消除2个错误答案。

public class QuestionActivity extends Activity {

MediaPlayer mySound;
List<Question> quesList;
int score = 0;
int qid = 0;
int i = 0;

//for help 50/50
int help = score % 5;
int rnd2 ,rnd1;

ProgressBar mProgressBar;
CountDownTimer mCountDownTimer;

// Animation
Animation animFadein;


Question currentQ;
TextView txtQuestion, scored;
Button button1, button2, button3, button4,helpbtn;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client;
public void help (View view){

helpbtn=(Button)findViewById(R.id.helpbtn);
helpbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
help = help - 1;
v.setEnabled(false);

/*if (help == 0 ){
helpbtn.setEnabled(false);
} else {
helpbtn.setEnabled(true);
}
*/
String AnswerString = currentQ.getANSWER();
//match DB answer to selected answer, turn it visible if it is correct

if(button1.getText().equals(AnswerString)){
button1.setVisibility(View.VISIBLE);
}
if(button2.getText().equals(AnswerString)){
button2.setVisibility(View.VISIBLE);
}
if(button3.getText().equals(AnswerString)){
button3.setVisibility(View.VISIBLE);
}
if(button4.getText().equals(AnswerString)){
button4.setVisibility(View.VISIBLE);
}

//random disable 2 incorrect answer
List<Integer> list = Arrays.asList(1, 2, 3, 4);
Collections.shuffle(list);
rnd1 = list.get(0);
rnd2 = list.get(1);

if ((rnd1 == 1) || (rnd2 == 1)){
button1.getText().equals(AnswerString);
button1.setVisibility(View.INVISIBLE);
}

if ((rnd1 == 2) || (rnd2 == 2)){
button2.getText().equals(AnswerString);
button2.setVisibility(View.INVISIBLE);
}

if ((rnd1 == 3) || (rnd2 == 3)){
button3.getText().equals(AnswerString);
button3.setVisibility(View.INVISIBLE);
}
if ((rnd1 == 4) || (rnd2 == 4)){
button4.getText().equals(AnswerString);
button4.setVisibility(View.INVISIBLE);
}
}
});
}

@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qestion);
QuizHelper db = new QuizHelper(this); // my question bank class
quesList = db.getAllQuestions(); // this will fetch all questions
currentQ = quesList.get(qid); // the current question
mySound = MediaPlayer.create(this, R.raw.bensoundcute); // music background
mySound.start();
mySound.setLooping(true);

txtQuestion = (TextView) findViewById(R.id.txtQuestion);
// load the textQuestion animation
animFadein = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade_in);
// the text view in which the question will be displayed
// the 4 buttons,
// the idea is to set the text of 4 buttons with the options from question bank
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);

// the text view in which score will be displayed
scored = (TextView) findViewById(R.id.score);
// method which will set the things up for our game
setQuestionView(false);

mProgressBar = (ProgressBar) findViewById(progressbar);
mProgressBar.setMax(100);
mProgressBar.setProgress(i);




mCountDownTimer = new CountDownTimer(30000,300) {
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override
public void onTick(long millisUntilFinished) {
Log.v("Log_tag", "Timer Progress " + i + millisUntilFinished);
i++;
mProgressBar.setRotation(180);
mProgressBar.setProgress(i);

}
@Override
public void onFinish() {
Toast.makeText(getApplicationContext(), "TIME is UP!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(QuestionActivity.this,
ResultActivity.class);
// passing the int value
Bundle b = new Bundle();
b.putInt("score", score); // Your score
intent.putExtras(b); // Put your score to your next
startActivity(intent);
mCountDownTimer.cancel();
finish();
}
};
txtQuestion.setAnimation(animFadein);
txtQuestion.startAnimation(animFadein);
mCountDownTimer.start();
// button click listeners
final MediaPlayer buttonSound = MediaPlayer.create(this, R.raw.play);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonSound.start();
if(mCountDownTimer!=null){
mCountDownTimer.cancel();
}

// passing the button text to other method
// to check whether the answer is correct or not
// same for all three buttons
getAnswer(button1.getText().toString());

}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonSound.start();
if(mCountDownTimer!=null){
mCountDownTimer.cancel();
}

getAnswer(button2.getText().toString());

}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonSound.start();
if(mCountDownTimer!=null){
mCountDownTimer.cancel();
}
getAnswer(button3.getText().toString());


}
});

button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buttonSound.start();
if(mCountDownTimer!=null){
mCountDownTimer.cancel();
}

getAnswer(button4.getText().toString());
}
});




// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}
@Override
protected void onPause(){
super.onPause();
mySound.release();
finish();
}
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
builder.setMessage("Do you want to Exit?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user pressed "yes", then he is allowed to exit from application
dialog.dismiss();
onYesClick();
}
private void onYesClick() {
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
mCountDownTimer.cancel();
finish();
QuestionActivity.this.finish();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user select "No", just cancel this dialog and continue with app
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
public void getAnswer(String AnswerString) {

if (currentQ.getANSWER().equals(AnswerString)) {
// if conditions matches increase the int (score) by 1
// and set the text of the score view
// Intent intent = new Intent(this, QuestionActivity.class);
//startActivity(intent);
Toast.makeText(getApplicationContext(), "CORRECT!", Toast.LENGTH_SHORT).show();
score++;
scored.setText("Score: " + score + " /100");
txtQuestion.setAnimation(animFadein);
txtQuestion.startAnimation(animFadein);

}
else {
setQuestionView(false);
// if unlucky start activity and finish the game
Toast.makeText(getApplicationContext(), "Sorry! Better luck next time.", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(QuestionActivity.this, ResultActivity.class);
// passing the int value
Bundle b = new Bundle();
b.putInt("score", score); // Your score
intent.putExtras(b); // Put your score to your next
startActivity(intent);
mCountDownTimer.cancel();
finish();
}


if(qid < 100) {
// if questions are not over then do this
currentQ = quesList.get(qid);
setQuestionView(true);
txtQuestion.setAnimation(animFadein);
txtQuestion.startAnimation(animFadein);

button1.setVisibility(View.VISIBLE);
button2.setVisibility(View.VISIBLE);
button3.setVisibility(View.VISIBLE);
button4.setVisibility(View.VISIBLE);

}
else {
Toast.makeText(getApplicationContext(),
"Game Over.",
Toast.LENGTH_SHORT)
.show();
Intent intent = new Intent(QuestionActivity.this,
ResultActivity.class);
// passing the int value
Bundle b = new Bundle();
b.putInt("score", score); // Your score
intent.putExtras(b); // Put your score to your next
startActivity(intent);
mCountDownTimer.cancel();
finish();
}
}

private boolean setQuestionView(boolean b) {

// the method which will put all things together
txtQuestion.setText(currentQ.getQUESTION());
button1.setText(currentQ.getOPTA());
button2.setText(currentQ.getOPTB());
button3.setText(currentQ.getOPTC());
button4.setText(currentQ.getOPTD());

qid++;
return b;
}

最佳答案

 if (currentQ.getANSWER().equals(AnswerString)) {
// if conditions matches increase the int (score) by 1
// and set the text of the score view
// Intent intent = new Intent(this, QuestionActivity.class);
//startActivity(intent);
Toast.makeText(getApplicationContext(), "CORRECT!", Toast.LENGTH_SHORT).show();
score++;
scored.setText("Score: " + score + " /100");
txtQuestion.setAnimation(animFadein);
txtQuestion.startAnimation(animFadein);


if (score%5 == 1 ){
helpbtn.setEnabled(false);
} else {
helpbtn.setEnabled(true);
}


}

注意:在hlpbutton点击监听器中注释启用和禁用帮助按钮并尝试。

关于java - 如何在按钮中使用模数并设置点击限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41031499/

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