Android: agrega un elemento a la lista personalizada al pulsar el botón
Actualmente tengo un listview personalizado en el que cada elemento de la lista contiene dos filas de texto. Lo que me gustaría hacer es cada vez que un usuario hace clic en el botón, crea un nuevo elemento en la lista con el texto que el usuario introdujo. Aunque sé cómo obtener el texto, tengo problemas para agregar un nuevo elemento a la vista de lista, ya que simplemente no sé por dónde empezar.
Aquí está mi código:
- Asegúrese de que el contenido de su adaptador no se ha modificado desde un subproceso de fondo, sino sólo desde el subproceso de interfaz de usuario
- Onclicklistner no funciona en el listview de fragmentos
- ListView ya no reacciona a onclick después de una llamada a setSelection ()
- Desaparecer divisor en ListView cuando ArrayAdapter.isEnabled devuelve false
- ListView no se desplaza hasta el final cuando el teclado
public class MainFeedActivity extends ListActivity implements OnClickListener{ View sendButton; EditText postTextField; TextView currentTimeTextView, mainPostTextView; ListView feedListView; String [] test; ArrayList<HashMap<String,String>> list; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_feed); //create button and implement on click listener sendButton = this.findViewById(R.id.sendPostButton); sendButton.setOnClickListener(this); list = new ArrayList<HashMap<String,String>>(); //create the adapter for the list view SimpleAdapter adapter = new SimpleAdapter( this, list, R.layout.post_layout, new String[]{"time", "post"}, new int[]{R.id.postTimeTextView, R.id.postTextView}); //fill the list view with something - TEST fillData(); //set list adapter setListAdapter(adapter); } public void fillData(){ //long timeTest = System.currentTimeMillis(); HashMap<String,String> temp = new HashMap<String,String>(); temp.put("time", "current time"); temp.put("post", "USER TEXT GOES HERE"); list.add(temp); } @Override public void onClick(View button) { switch(button.getId()){ case R.id.sendPostButton: break; } } }
- Líneas de desplazamiento de borde azul de listview. Androide
- Referencia de diseño duplicada en la vista de lista
- Android cómo identificar el elemento en listview con casilla de verificación
- Android convertView, para usarlo o no?
- Mantenimiento de los estados de la casilla de verificación en listview con CursorAdapter
- Las filas ListView de Android en ScrollView no se muestran completamente - recortadas
- ¿Cuál usar WebView o TextView en una lista con datos HTML en ella?
- ListView se rellena desde la parte inferior en lugar de desde la parte superior
Es tan simple como añadir un nuevo elemento a su ArrayList
(como lo hace en fillData
), y luego llamar a adapter.notifyDataSetChanged()
.
Después de llamar a fillData (), simplemente haga una llamada en adapter.notifyDataSetChanged()
.
NotifyDataSetChanged () – Notifica a la vista adjunta que los datos subyacentes se han cambiado y que debe actualizarse.
- Personalización predeterminada Theme.AppCompat.Dialog.Alert con android.support.v7.app.AlertDialog
- Cómo implementar pestañas personalizadas en Android como Instagram