Le damos Next, luego elegimos en la api en la que vamos a trabajar en mi caso sera la 4.0
Le damos Next, luego elegimos en el estilo de actividad que trabajaremos en mi caso escogeré Empty Activity
Le damos Next, le damos un nombre a nuestra actividad en mi caso lo dejare por defecto:
Le damos finish y estamos listos para trabajar, en este caso para creas nuestra lista crearemos un objeto en java que llegara a ser el formato de nuestra lista y otra clase java que llegara ser el adaptador de la lista.
En la Clase java de formatolista le daremos el siguiente código:
public class formatolista {
String nombre;
String Direccion;
public formatolista(String nombre, String Direccion){
this.nombre=nombre;
this.Direccion=Direccion;
}
public String getNombre(){
return nombre;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public String getDireccion(){
return Direccion;
}
public void setDireccion(String hora){
this.Direccion=hora;
}
}
En la Clase java de ListaAdaptador le damos el siguiente código:
//implementamos sus metos del BaseAdapter
public class ListaAdaptador extends BaseAdapter {
private Context context;
//el objeto formatolista lo introducimos en un una clase List
private List<formatolista> lista;
public ListaAdaptador(Context context, List<formatolista> items){
this.context = context;
this.lista = items;
}
@Override
public int getCount() {
return this.lista.size();
}
@Override
public Object getItem(int position) {
return this.lista.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (convertView == null) {
// Crea una nuevo view a la lista.
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.fragmento_lista, parent, false);
}
// cargamos los datos al view.
TextView nombre = (TextView) rowView.findViewById(R.id.txtnombre);
TextView direccion=(TextView)rowView.findViewById(R.id.txtdireccion);
formatolista item = this.lista.get(position);
nombre.setText(item.getNombre());
direccion.setText(item.getDireccion());
return rowView;
}
}
si te sale error es por que aun no definimos los TextView ahora lo
aremos:
- Vamos res-layout-y creamos un un nuevo layout llamdo
fragmento_lista.xml
- Ahí ponemos los dos TextView que necesitamos y lo ponemos en el orden que queremos que se muestre:
- luego al texto nombre le damos el id de txtnombre y a texto dirección le damos txtdireccion, con esto ultimo ya no debería tener error.
Luego nos vamos al layout del activity_main y arrastramos un ListView, una dos cajas de texto uno para el nombre y otro para la dirección y un botón, a las cajas de texto tiene in id de txtnom y txtdir respectivamente, quedara así:
ahora vamos a la clase java del activitymain y le damos el código siguiente:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
ListView lista;
List items;
TextView uno;
TextView dos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lista=(ListView)findViewById(R.id.listView);
Button btn=(Button)findViewById(R.id.btngregar);
uno=(TextView)findViewById(R.id.txtnom);
dos=(TextView)findViewById(R.id.txtdir);
items =new ArrayList();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
items.add(new formatolista(uno.getText().toString(), dos.getText().toString()));
//carmamos y mostramos lista
lista.setAdapter(new ListaAdaptador(getBaseContext(), items));
}
});
}
}
y nos da como resultado lo siguiente
Esta es una forma de crear y llenar una lista y recalcar que esta lista la podemos personalizar se le puede dar imagen solo hay que cambiar el formato de xlm del fragmento_lista, espero lo entienda y les guste.
0 comentarios:
Publicar un comentario