リストビューに項目を動的に追加する必要があります。リストビューに動的項目を追加する
私はFAB(crearEntrenamintoActivity)を使用して新しいアクティビティ(crearEjercicioActivity)を開き、ここでリストビューに追加する新しいアイテムの必要データを完成します。
しかし、このようにして、私は両方のアクティビティ間で常にparceableExtraを渡す必要があります。
もっと簡単な方法はありますか?
編集:ここでは
私はFABボタンを押したときに、私は、このオブジェクトにリストビューのすべてのアイテムを保存する必要があるため、私は新しい活動余分な「entrenamiento」に送ります。
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);
}
});
}
}
次に、「crearEjercicioActivity」にはこれがあります。ここで私がsaveボタンを押すと、arrayListに新しい項目を追加します。
@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);
}
}
そして最後に、私はこれを行う:
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);
}
}
あなたはもう少し説明したり、コードを入れることはできますか? – adalPaRi
いくつかのコードをお願いします – tpk
はい、申し訳ありません。私は編集する。 – garciam202