Tutoriales gratuitos para el aprendizaje de la programacion informatica! Recuerda que si lo puedes imaginar... lo puedes programar!

ListView Firebase Android

Conectar una lista con datos almacenados en Firebase

xml del MainActivity:

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

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

<ListView 
android:id="@+id/list_view_informacion" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_margin="16dp"> </ListView> 
 </LinearLayout>

Codigo en el MaiActivity:

public class InformacionActivity extends AppCompatActivity { 
private ListView listView;  
private ArrayList<String> arrayList =new ArrayList<>(); 
private TextView tnombre;
public DatabaseReference databaseReference; 
public FirebaseDatabase firebaseDatabase; String nombre;

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

 tnombre=(TextView) findViewById(R.id.tnombre); 
 FirebaseApp.initializeApp(this);
 firebaseDatabase= FirebaseDatabase.getInstance();
 databaseReference= firebaseDatabase.getReference("informacion");

 final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,arrayList); 

 listView = (ListView) findViewById(R.id.list_view_informacion);
 listView.setAdapter(arrayAdapter);

 databaseReference.addChildEventListener(new ChildEventListener() { 

 @Override 
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) { 

 nombre = dataSnapshot.child("nombre").getValue(String.class); 
 arrayList.add(nombre); arrayAdapter.notifyDataSetChanged(); 

 }

 @Override 
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
 arrayAdapter.notifyDataSetChanged(); 

 } 

 @Override 
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
 }

 @Override
 public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) { 
 } 

 @Override
 public void onCancelled(@NonNull DatabaseError databaseError) {
 } });

 listView.setClickable(true);
 listView.setTextFilterEnabled(true);
 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

 @Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

 String valorInformacion=arrayAdapter.getItem(position); 
 tnombre.setText(valorInformacion); 

 } }); 

}

No hay comentarios:

Publicar un comentario