Search code examples
androidlistviewfirebasefirebase-realtime-databasefirebaseui

Populating listview with FirebaseListAdapter in Android


I am using counter value for counting my ListView items. But when I am scrolling down and back scrolling up it still count value inside of my code and changes values.

This values should 1 and 2 instead of 7 and 8...

should be 1 and 2

Here is my code

 DatabaseReference myQuery = databaseReference.child("Tests").child(PIN).child("Questions");
    FirebaseListAdapter<QuizStatistic_list> adapter = new FirebaseListAdapter<QuizStatistic_list>(this, QuizStatistic_list.class, R.layout.list_quiz_statistic, myQuery) {
        @Override
        protected void populateView(View v, QuizStatistic_list model, int position) {

            TextView quizQuestion, questionNumber, ansA, ansB, ansC, ansD;


            quizQuestion = (TextView) v.findViewById(R.id.textView_quizQuestion);
            questionNumber = (TextView) v.findViewById(R.id.textView_questionNumber);
            ansA = (TextView) v.findViewById(R.id.textView_ansA);
            ansB = (TextView) v.findViewById(R.id.textView_ansB);
            ansC = (TextView) v.findViewById(R.id.textView_ansC);
            ansD = (TextView) v.findViewById(R.id.textView_ansD);


            quizQuestion.setText(model.getQuestion());
            questionNumber.setText(counter.toString());
            ansA.setText("A:  " + model.getAnswerA());
            ansB.setText("B:  " + model.getAnswerB());
            ansC.setText("C:  " + model.getAnswerC());
            ansD.setText("D:  " + model.getAnswerD());

           //This value counts listview items
           counter++;
        }
    };
    questionsList.setAdapter(adapter);

Solution

  • use position instead of counter.!

    questionNumber.setText(""+position+1);
    

    position is index number of your array list .! so it will start from 0 by adding one it will show your desired result first number will be index 0+1=1; maybe it will help u like