¿Cómo agregar elementos dinámicamente a un ListView en Android?

ListView es un widget de interfaz de usuario en Android que se utiliza en la mayoría de las aplicaciones de Android. Podemos mostrar la lista de datos usando la vista de lista. Podemos agregar o eliminar dinámicamente elementos de la vista de lista realizando algunas operaciones de la lista. En este artículo, veremos cómo agregar elementos a un ListView en Android de forma dinámica. A continuación se muestra un video de muestra para tener una idea de lo que haremos en este artículo.

Nota : este artículo de Android cubre los lenguajes Java y Kotlin

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio .

Paso 2: trabajar con el archivo activity_main.xml

Vaya a aplicación > res > diseño > actividad_principal.xml y agregue el código a continuación. Se agregan comentarios en el código para conocer en detalle. 

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/idRLContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
 
    <!--on below line we are creating edit text
         for adding a new item to list-->
    <EditText
        android:id="@+id/idEdtItemName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:layout_toLeftOf="@id/idBtnAdd"
        android:hint="Enter item name to add in ist" />
 
    <!--button for adding item from edit text to list-->
    <Button
        android:id="@+id/idBtnAdd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_margin="4dp"
        android:text="Add"
        android:textAllCaps="false" />
 
    <!--list view to display list of languages-->
    <ListView
        android:id="@+id/idLVLanguages"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/idEdtItemName" />
 
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity 

Vaya a aplicación > java > nombre del paquete de su aplicación > archivo MainActivity y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle. 

Kotlin

package com.gtappdevelopers.kotlingfgproject
 
import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity
 
class MainActivity : AppCompatActivity() {
 
    // on below line we are creating a variable.
    lateinit var languageLV: ListView
    lateinit var addBtn: Button
    lateinit var itemEdt: EditText
    lateinit var lngList: ArrayList<String>
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // on below line we are initializing our variables.
        languageLV = findViewById(R.id.idLVLanguages)
        addBtn = findViewById(R.id.idBtnAdd)
        itemEdt = findViewById(R.id.idEdtItemName)
        lngList = ArrayList()
 
        // on below line we are adding items to our list
        lngList.add("C++")
        lngList.add("Python")
 
        // on below line we are initializing adapter for our list view.
        val adapter: ArrayAdapter<String?> = ArrayAdapter<String?>(
            this@MainActivity,
            android.R.layout.simple_list_item_1,
            lngList as List<String?>
        )
 
        // on below line we are setting adapter for our list view.
        languageLV.adapter = adapter
 
        // on below line we are adding click listener for our button.
        addBtn.setOnClickListener {
           
            // on below line we are getting text from edit text
            val item = itemEdt.text.toString()
 
            // on below line we are checking if item is not empty
            if (item.isNotEmpty()) {
                // on below line we are adding item to our list.
                lngList.add(item)
 
                // on below line we are notifying adapter
                // that data in list is updated to update our list view.
                adapter.notifyDataSetChanged()
            }
        }
 
    }
}

Java

package com.gtappdevelopers.kotlingfgproject;
 
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
 
public class MainActivity extends AppCompatActivity {
 
    // on below line we are creating variables.
    private ListView languageLV;
    private Button addBtn;
    private EditText itemEdt;
    private ArrayList<String> lngList;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // on below line we are initializing our variables.
        languageLV = findViewById(R.id.idLVLanguages);
        addBtn = findViewById(R.id.idBtnAdd);
        itemEdt = findViewById(R.id.idEdtItemName);
        lngList = new ArrayList<>();
 
        // on below line we are adding items to our list
        lngList.add("C++");
        lngList.add("Python");
 
        // on the below line we are initializing the adapter for our list view.
        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, lngList);
 
        // on below line we are setting adapter for our list view.
        languageLV.setAdapter(adapter);
 
        // on below line we are adding click listener for our button.
        addBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // on below line we are getting text from edit text
                String item = itemEdt.getText().toString();
 
                // on below line we are checking if item is not empty
                if (!item.isEmpty()) {
 
                    // on below line we are adding item to our list.
                    lngList.add(item);
 
                    // on below line we are notifying adapter
                    // that data in list is updated to
                    // update our list view.
                    adapter.notifyDataSetChanged();
                }
 
            }
        });
    }
}

Ahora ejecute su aplicación para ver el resultado. 

Producción:

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *