Reputation: 142
I store some data in firebase realtime database and create question class.i also create a commonmodel class. Here is the show quiz activity:
public class ShowQuizActivity extends AppCompatActivity implements View.OnClickListener {
final static int INTERVAL = 1000;
final static int TIMEOUT = 7000;
int progressvalue = 0;
CountDownTimer mCountDown;
int index = 0,score = 0,thisQuestion = 0,totalQuestion,correctAnswer;
FirebaseDatabase database;
DatabaseReference questions;
ProgressBar progressBar;
Button btnA,btnB,btnC,btnD;
TextView txtQuestion,txtquestionNum,txtScore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_quiz);
database = FirebaseDatabase.getInstance();
questions = database.getReference("Question");
txtQuestion = findViewById(R.id.question);
txtquestionNum = findViewById(R.id.quNum);
txtScore = findViewById(R.id.score);
progressBar = findViewById(R.id.progressBar);
btnA = findViewById(R.id.option1);
btnB = findViewById(R.id.option2);
btnC = findViewById(R.id.option3);
btnD = findViewById(R.id.option4);
btnA.setOnClickListener(this);
btnB.setOnClickListener(this);
btnC.setOnClickListener(this);
btnD.setOnClickListener(this);
loadQuestion(CommonModel.question);
}
private void loadQuestion(List<Question> question) {
if (CommonModel.question.size() > 0)
CommonModel.question.clear();
}
here is my CommonModel class:
import java.util.ArrayList;
import java.util.List;
public class CommonModel {
public static SignInUpModel currentUser;
public static List<Question> question = new ArrayList<>();
}
question class is here:
public class Question {
private String answer,option1,option2,option3,option4,question;
public Question() {
}
public Question(String answer, String option1, String option2, String option3, String option4, String question) {
this.answer = answer;
this.option1 = option1;
this.option2 = option2;
this.option3 = option3;
this.option4 = option4;
this.question = question;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
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 getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
}
Database structure:
I can't show this data in my app. What can i do?I
Upvotes: 1
Views: 104
Reputation: 139039
According to your comment, to get all questions, please use the following lines of code:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference questionRef = rootRef.child("Question");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<Question> questionList = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Question q = ds.getValue(Question.class);
questionList.add(q);
String answer = q.getAnswer();
String option1 = q.getOption1();
String option2 = q.getOption2();
String option3 = q.getOption3();
String option4 = q.getOption3();
String question = q.getQuestion();
Log.d(TAG, answer + "/" + option1 + "/" + option2 + "/" + option3 + "/" + option4 + "/" + question);
}
//Do what you need to do with your list
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
questionRef.addListenerForSingleValueEvent(valueEventListener);
Upvotes: 1