SetPositiveButton работает, но текстовая строка не появляетсяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 SetPositiveButton работает, но текстовая строка не появляется

Сообщение Anonymous »

Мой setPositiveButton работает в моем приложении, но текст, который должен появиться при нажатии («Готово»), не появляется.
Поэтому, когда я нажимаю на пробел в приложение, где должно появиться кликабельное «Готово», место пустое. Но нажатие на это пустое место приводит к правильному выполнению кода!

Код: Выделить всё

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);

}

}

Кто-нибудь может понять, почему добавление моего заставки не позволило появиться setPositiveButton? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -appearing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»