LisaJoseph
LisaJoseph

Reputation: 63

listview is not populating

I am trying to add ratdatalist into the listview in rat_data called ratData but it isn't working, can anyone tell me why?

I am currently making an array list, populating that, and then adding it to the adapter, but it isn't appearing when I run it

public class RatData extends AppCompatActivity implements View.OnClickListener {
ListView ratData;
Button addB;
Button mapB;
private final Activity thisActivity = this;
public static int args;
private DatabaseReference mFirebaseDatabase;
private FirebaseDatabase mFirebaseInstance;
List<String> ratDatalist = new ArrayList<>();

/**
 * automatically read csv file & displays keys
 *
 * @param savedInstanceState bundle object used upon creation
 */

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.rat_data);
    System.out.println("reach here");

    addB = (Button) findViewById(R.id.add);
    mapB = (Button) findViewById(R.id.map);
    addB.setOnClickListener(this);
    mapB.setOnClickListener(this);

    //ratData = (ListView) findViewById(R.id.ratData);



    mFirebaseInstance = FirebaseDatabase.getInstance();
    mFirebaseDatabase = mFirebaseInstance.getReference("rats");
    try {
        DatabaseReference mFirebaseInstance1 = FirebaseDatabase.getInstance().getReference().child("rats");
        mFirebaseInstance1.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    String ratkeysName = (String) ds.getKey();
                    ratDatalist.add(ratkeysName);
                    System.out.println("here");
                }

            }


            @Override
            public void onCancelled(DatabaseError databaseError) {
                throw databaseError.toException(); // don't ignore errors
            }
        });
    } catch(Exception e){

    }
    final ArrayAdapter adapter = new ArrayAdapter<String>(RatData.this,
            R.layout.rat_data, ratDatalist);
    ratData = (ListView) findViewById(R.id.ratData);
    ratData.setAdapter(adapter);
    System.out.println("hello");
   
   }

My problem does reach hello and the list is properly populating, however it simply wont appear in the app.

Upvotes: 1

Views: 51

Answers (1)

J Ramesh
J Ramesh

Reputation: 548

Your is something like that

public class RatData extends AppCompatActivity implements View.OnClickListener {
ListView ratData;
Button addB;
Button mapB;
private final Activity thisActivity = this;
public static int args;
private DatabaseReference mFirebaseDatabase;
private FirebaseDatabase mFirebaseInstance;
List<String> ratDatalist = new ArrayList<>();

/**
 * automatically read csv file & displays keys
 *
 * @param savedInstanceState bundle object used upon creation
 */

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.rat_data);
    System.out.println("reach here");

    addB = (Button) findViewById(R.id.add);
    mapB = (Button) findViewById(R.id.map);
    addB.setOnClickListener(this);
    mapB.setOnClickListener(this);


final ArrayAdapter adapter = new ArrayAdapter<String>(RatData.this,
            R.layout.rat_data, ratDatalist);
    ratData = (ListView) findViewById(R.id.ratData);
    ratData.setAdapter(adapter);
    System.out.println("hello");


    mFirebaseInstance = FirebaseDatabase.getInstance();
    mFirebaseDatabase = mFirebaseInstance.getReference("rats");
    try {
        DatabaseReference mFirebaseInstance1 = FirebaseDatabase.getInstance().getReference().child("rats");
        mFirebaseInstance1.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot ds : dataSnapshot.getChildren()) {
                    String ratkeysName = (String) ds.getKey();
                    ratDatalist.add(ratkeysName);
                    System.out.println("here");
                }
                adapter.notifyDataSetChanged();

            }


            @Override
            public void onCancelled(DatabaseError databaseError) {
                throw databaseError.toException(); // don't ignore errors
            }
        });
    } catch(Exception e){

    }

   }

Upvotes: 0

Related Questions