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