Я разместил вопросы в базе данных реального времени Firebase в виде массива вопросов json и попытался извлечь его из Firebase в свое приложение, но я получаю возможность видеть тот же текст в моих текстовых представлениях, который я установил по умолчанию в моем Файл xml, пожалуйста, помогите. Моя база данных - это массив json, содержащий класс Вопросы, в котором есть пять категорий, и каждая категория имеет 9 полей с шестью разделами; вопрос, четыре варианта и правильный ответ (все строки)
public class Questions extends AppCompatActivity {
DatabaseReference dref;
DatabaseReference ref,ques;
TextView question,option1,option2,option3,option4;
ImageButton imageButton;
int val,correct,wrong,score;
public Questions() {
this.val = 0;
this.correct=0;
this.wrong=0;
this.score=0;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_questions);
question=findViewById(R.id.question);
imageButton=findViewById(R.id.next);
option1=findViewById(R.id.opt1);
option2=findViewById(R.id.opt2);
option3=findViewById(R.id.opt3);
option4=findViewById(R.id.opt4);
dref= FirebaseDatabase.getInstance().getReference();
Intent intent=getIntent();
Integer value=intent.getIntExtra("type",0);
switch (value)
{
case 1:
ref=dref.child("Questions").child("Bollywood");
break;
case 2:
ref=dref.child("Questions").child("Sports");
break;
case 3:
ref=dref.child("Questions").child("Technology");
break;
case 4:
ref=dref.child("Questions").child("Entertainment");
break;
case 5:
ref=dref.child("Questions").child("Miscellaneous");
break;
default:
break;
}
ques = ref.child(String.valueOf(val));
ques.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
QAnswer qAnswer=dataSnapshot.getValue(QAnswer.class);
question.setText(qAnswer.getQuestion());
option1.setText(qAnswer.getOption1());
option2.setText(qAnswer.getOption2());
option3.setText(qAnswer.getOption3());
option4.setText(qAnswer.getOption4());
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(val>15)
{
}
else {
ques = ref.child(String.valueOf(++val));
ques.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
final QAnswer qAnswer=dataSnapshot.getValue(QAnswer.class);
Log.d("value",qAnswer.getQuestion()+qAnswer.getAnswer());
question.setText(qAnswer.getQuestion());
option1.setText(qAnswer.getOption1());
option2.setText(qAnswer.getOption2());
option3.setText(qAnswer.getOption3());
option4.setText(qAnswer.getOption4());
option1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(qAnswer.getOption1()==qAnswer.getAnswer())
{
option1.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
correct++;
}
else {
option1.setBackgroundColor(getResources().getColor(R.color.colorAccent));
wrong++;
}
}
});
option2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
option3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
option4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
});
}
}
Это мой класс модели вопросов:
public class QAnswer {
String question;
String option1;
String option2;
String option3;
String option4;
String answer;
public QAnswer(String question, String option1, String option2, String option3, String option4, String answer) {
this.question = question;
this.option1 = option1;
this.option2 = option2;
this.option3 = option3;
this.option4 = option4;
this.answer = answer;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getOption1() {
return option1;
}
public void setOption1(String option1) {
this.option1 = option1;
}
public String getOption2() {
return option2;
}
public void setOption2(String option2) {
this.option2 = option2;
}
public String getOption3() {
return option3;
}
public void setOption3(String option3) {
this.option3 = option3;
}
public String getOption4() {
return option4;
}
public void setOption4(String option4) {
this.option4 = option4;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
}