viernes, 23 de marzo de 2012

Alimentar ListView

No pretendo enseñar cómo se programa en Android,  pero este post me servirá de referencia.
Voy a contar cómo se alimenta un ListView desde un campo que se teclee, algo como esto:


Se trata de alimentar el ListView según se pulsa el botón.
Primero se crea el proyecto en Eclipse, si no se sabe, con Google es fácil encontrarlo. A mi proyecto lo he llamado Milistview y el XML main es así:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/edittext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#0000ff" />
    <Button
        android:id="@+id/addbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add" />
<ListView
        android:id="@+id/l_newlist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:textColor="#00ffff" 
         />
</LinearLayout>


La clase queda de esta manera:


public class MilistviewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        //Assign objects
        final ListView myListView = (ListView) findViewById(R.id.l_newlist);
        final EditText myEdittext = (EditText) findViewById(R.id.edittext);
        final Button mybutton = (Button) findViewById(R.id.addbutton);
        final ArrayList<String> elements = new ArrayList<String>();
       
        //the adapter
        final ArrayAdapter<String> myadapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, elements);
        myListView.setAdapter(myadapter);
        // the listener
        mybutton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
elements.add(myEdittext.getText().toString());
myadapter.notifyDataSetChanged();
}
});
        
    }
} 




Y sigue funcionando:


Cordiales.

No hay comentarios:

Publicar un comentario