Ich muss Elemente dynamisch zur Listenansicht hinzufügen.Dynamischen Artikel zur Listenansicht hinzufügen
Jetzt benutze ich FAB (crearEntrenamintoActivity), um eine neue Aktivität (crearEjercicioActivity) zu öffnen und hier die notwendigen Daten des neuen Eintrags, der in die Listenansicht eingefügt werden soll, zu vervollständigen.
Aber auf diese Weise muss ich die ParcableExtra alle Zeit zwischen beiden Aktivitäten übergeben.
Gibt es einen einfacheren Weg, dies zu tun?
Edit:
hier, wenn ich drücken FAB-Taste i die extra „entrenamiento“ an die neue Aktivität senden, weil ich alle Elemente der Listenansicht in dieses Objekt speichern müssen.
public void initFAB() {
FloatingActionButton floatingActionButton = (FloatingActionButton) findViewById(R.id.fabCrearEntrenamiento);
if (floatingActionButton != null) {
floatingActionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//lanzamos la actividad de crear ejercicio
entrenamiento.setUbicacion(etUbicacion.getText().toString());
entrenamiento.setHoraInicio(etHoraInicio.getText().toString());
Intent intent = new Intent(getApplicationContext(), CrearEjercicioActivity.class);
intent.putExtra("entrenamiento", entrenamiento);
startActivity(intent);
}
});
}
}
Dann in "crearEjercicioActivity" habe ich dies. Hier, wenn ich die Speichern-Taste drücke, füge ich in der ArrayListe das neue Element hinzu.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_save:
Entrenamiento entrenamiento = getIntent().getParcelableExtra("entrenamiento");
Ejercicio ejercicio = new Ejercicio();
EditText titulo = (EditText) findViewById(R.id.etTituloEjercicio);
ejercicio.setTitulo(titulo.getText().toString());
entrenamiento.getEjercicios().add(ejercicio);
Intent intentEjercicio = new Intent(getApplicationContext(), CrearEntrenamientoActivity.class);
intentEjercicio.putExtra("entrenamiento", entrenamiento);
startActivity(intentEjercicio);
return true;
case R.id.action_home:
Intent intent = new Intent(getApplicationContext(), DashBoardActivity.class);
startActivity(intent);
default:
return super.onOptionsItemSelected(item);
}
}
Und schließlich ich das tun:
if (entrenamiento.getEjercicios().size() > 0) {
ListView listViewEjercicios = (ListView) findViewById(R.id.listViewEjercicios);
ArrayList<String> titulosEjercicios = new ArrayList<>();
for (Ejercicio ejercicio : entrenamiento.getEjercicios()) {
titulosEjercicios.add(ejercicio.getTitulo());
}
ArrayAdapter<String> listAdapter = new ArrayAdapter<>(this, R.layout.simple_row_ejercicio_layout, titulosEjercicios);
if (listViewEjercicios != null) {
listViewEjercicios.setAdapter(listAdapter);
}
}
Können Sie ein bisschen mehr oder Code zu setzen erklären? – adalPaRi
Einige Code bitte – tpk
Ja, tut mir leid. Ich bearbeite. – garciam202