How to display Firebase data as list in Android

I will explain How you can display your Fire-base data as list in Android studio .

Follow these steps-

1. create an activity in android

Firstly you need to create an activity (java file and xml file ). This activity name is start (name can be your choice) So here is the java and xml code below-

activity_start-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/list1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>

</LinearLayout>

start.java-

package com.example.myapplication;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.firebase.ui.database.FirebaseListAdapter;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.Arrays;


public class start extends AppCompatActivity {


    private static final String TAG = start;
    private ListView mListView;
    private TextView Ans1,Ans2,Ans3;
    private FirebaseListAdapter adapter;
    private DatabaseReference databse;
    private ArrayAdapter madapter;
    private Arrays arrays;
    private ArrayListsurveys list;
    private Object surveys;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);

        list = new ArrayListsurveys();
        databse=FirebaseDatabase.getInstance().getReference().child(surveys);
        databse.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            showData(dataSnapshot);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            throw databaseError.toException();
        }
    });
}
   public void showData(DataSnapshot dataSnapshot) {

         for (DataSnapshot ds  dataSnapshot.getChildren()) {
             surveys ss1 = ds.getValue(surveys.class);
             list.add(ss1);
         }

       final listviewAdapter adapter = new listviewAdapter(this, list);
         populateList();
         mListView = (ListView) findViewById(R.id.list1);
         mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

             @Override
             public void onItemClick(AdapterView adapterView, View view, int position, long l) {
                 Toast.makeText(start.this, list.get(i)+, Toast.LENGTH_SHORT).show();
                 String TempListViewClickedValue = list[position].toString();
                 Object os= adapter.getItem(position);
                 Intent intent = new Intent(start.this, PassingActivity.class);
                  Sending value to another activity using intent.
                 intent.putExtra(ListViewClickedValue, TempListViewClickedValue);
                 startActivity(intent);
             }
         });
         mListView.setAdapter(adapter);
         adapter.notifyDataSetChanged();
     }
 }

 

2. create Another activity –

In third steps you will create a java class which is pass to the list view adapter , As –

surveys.java-

package com.example.myapplication;

public class surveys {
    public String userid;
    public String ques1;
    public String ans1;
    public String ques2;
    public String ans2;
    public String ques3;
    public String ans3;

    public String getAns1() {
        return ans1;
    }

    public void setAns1(String ans1) {
        this.ans1 = ans1;
    }

    public String getAns2() {
        return ans2;
    }

    public void setAns2(String ans2) {
        this.ans2 = ans2;
    }

    public String getAns3() {
        return ans3;
    }
   public void setAns3(String ans3) {
        this.ans3 = ans3;
    }
}

surveys-

In this xml file data will show as a list on your screen –

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView

        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="558dp">


        <TextView
            android:id="@+id/ans1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>


        <TextView
            android:id="@+id/ans2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <TextView
            android:id="@+id/ans3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>


    </ListView>
</LinearLayout>

 

3. create another java class-

package com.example.myapplication;

public class Constant {
    public static final String FIRST_COLUMN = "First";
    public static final String SECOND_COLUMN = "Second";
    public static final String THIRD_COLUMN = "Third";
    public static final String FOURTH_COLUMN = "Fourth";
    public static final String FIFTH_COLUMN = "Fifth";
    public static final String SIXTH_COLUMN = "Sixth";

}

4. create a java file in studio-

package com.example.myapplication;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;

public class listviewAdapter extends BaseAdapter {
    public ArrayList<surveys> list;
    Activity activity;

    public listviewAdapter(Activity activity, ArrayList<surveys> list) {
        super();
        this.activity = activity;
        this.list = list;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    private class ViewHolder {
        TextView txtFirst,txtSecond,txtThird,txtFourth,txtFifth,txtSixth,txtSeventh;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        // TODO Auto-generated method stub
        ViewHolder holder;
        LayoutInflater inflater = activity.getLayoutInflater();

        if (convertView == null) {
            convertView = inflater.inflate(R.layout.mainstart, null);
            holder = new ViewHolder();
         holder.txtFirst = (TextView) convertView.findViewById(R.id.txt1);
            holder.txtSecond = (TextView) convertView.findViewById(R.id.txt2);
            holder.txtThird = (TextView) convertView.findViewById(R.id.txt3);
            holder.txtFourth = (TextView) convertView.findViewById(R.id.txt4);
            holder.txtFifth = (TextView) convertView.findViewById(R.id.txt5);
            holder.txtSixth = (TextView) convertView.findViewById(R.id.txt6);
            holder.txtSeventh= (TextView)convertView.findViewById(R.id.txt7);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        surveys map = list.get(position);
         holder.txtFirst.setText((CharSequence) map.ques1);
        holder.txtFourth.setText((CharSequence) map.ans1);
        holder.txtSecond.setText((CharSequence) map.ques2);
        holder.txtFifth.setText((CharSequence) map.ans2);
        holder.txtThird.setText((CharSequence) map.ques3);
        holder.txtSixth.setText((CharSequence) map.ans3);
       return convertView;
    }

}

By this above code Firebase data list will show as a result.

Hope this would work for you.

Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *