Поэтому, когда я нажимаю на пробел в приложение, где должно появиться кликабельное «Готово», место пустое. Но нажатие на это пустое место приводит к правильному выполнению кода!
Код: Выделить всё
package com.example.numbers;
import android.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
TextView questionTextView;
TextView totalQuestionTextView;
Button ansA,ansB,ansC,ansD;
Button btn_submit;
int score=0;
int totalQuestion = QuestionAnswer.question.length;
int currentQuestionIndex =0;
String selectedAnswer="";
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
totalQuestionTextView = findViewById(R.id.total_question);
questionTextView = findViewById(R.id.question);
ansA = findViewById(R.id.ans_a);
ansB = findViewById(R.id.ans_b);
ansC= findViewById(R.id.ans_c);
ansD = findViewById(R.id.ans_d);
btn_submit = findViewById(R.id.btn_submit);
ansA.setOnClickListener(this);
ansB.setOnClickListener(this);
ansC.setOnClickListener(this);
ansD.setOnClickListener(this);
btn_submit.setOnClickListener(this);
totalQuestionTextView.setText("You have "+totalQuestion +" questions to answer");
loadNewQuestion();
}
private void loadNewQuestion(){
if(currentQuestionIndex == totalQuestion){
finishQuiz();
return;
}
questionTextView.setText(QuestionAnswer.question[currentQuestionIndex]);
ansA.setText(QuestionAnswer.choices[currentQuestionIndex][0]);
ansB.setText(QuestionAnswer.choices[currentQuestionIndex][1]);
ansC.setText(QuestionAnswer.choices[currentQuestionIndex][2]);
ansD.setText(QuestionAnswer.choices[currentQuestionIndex][3]);
selectedAnswer="";
}
private void finishQuiz(){
String passStatus;
if(score >= totalQuestion*0.6){
passStatus = "You passed - well done!";
}else{
passStatus = "You failed this time - but keep trying!";
}
new AlertDialog.Builder(this)
.setTitle(passStatus)
.setMessage("You scored "+score+" out of "+totalQuestion)
.setCancelable(false)
.setPositiveButton("Finish",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
})
.show();
}
private void restartQuiz(){
score = 0;
currentQuestionIndex=0;
loadNewQuestion();
}
@Override
public void onClick(View view){
ansA.setBackgroundColor(Color.WHITE);
ansB.setBackgroundColor(Color.WHITE);
ansC.setBackgroundColor(Color.WHITE);
ansD.setBackgroundColor(Color.WHITE);
Button clickedButton = (Button) view;
if(clickedButton.getId() == R.id.btn_submit) {
if(!selectedAnswer.isEmpty()){
if(selectedAnswer.equals(QuestionAnswer.correctAnswers[currentQuestionIndex])){
score++;
}else{
clickedButton.setBackgroundColor(Color.MAGENTA);
}
currentQuestionIndex++;
loadNewQuestion();
}else{
}
}
else{
selectedAnswer=clickedButton.getText().toString();
clickedButton.setBackgroundColor(Color.YELLOW);
}
}
private class OnClickListener implements DialogInterface.OnClickListener {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}
}
[img]https://i.sstatic .net/A2wYUpQ8.jpg[/img]
Прослеживая мои шаги, текст setPositiveButton — «Готово» — появлялся, пока я не добавил заставку в отдельную Java класс/файл. Вот код этого файла:
Код: Выделить всё
package com.sarahchukwudebe.roselovesnumbers;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.appcompat.app.AppCompatActivity;
public class SplashScreen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(SplashScreen.this, MainActivity.class));
finish();
}
}, 7000);
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -appearing
Мобильная версия