Cómo personalizar el control ListView
Cómo personalizar el control ListView?
En Android, no es una visión que ListView.
Esta ListView es una vista que mostrará el diseño de la misma configuración.
La forma más sencilla de usar, o me la lista que usted coloque sólo una TextView simple.
Sin embargo, el uso de una sencilla ¿Qué, qué práctico?
Simplemente escriba el nombre del producto y el nombre de usuario no puede ser cualquier cosa, por ejemplo.
O un botón para enviar voz o un botón para la transición a la pantalla que muestra el nombre del producto, información detallada que, a ese usuario como nombre de usuario, no sólo es texto, que desea establecer con el botón, Yo creo que ni cómo, y otras personalizaciones que desee y, si hay un montón.
Utilizando el control ListView es un poco confuso, yo te mostraré cómo utilizar mi propio bien.
Que provisionalmente, y de esta manera, si no es un uso bastante general.
En primer lugar, se crea el diseño de la fila en el ListView.
Cómo conseguir que el diseño es exactamente el mismo que cuando se hace el diseño de la pantalla.
Camine en los pasos para agregar el archivo XML, que continúan agregando Vista.
Dado que este método se ha introducido anteriormente, por favor consulte el siguiente.
Cómo agregar Android XML
Cómo configurar el tamaño de XML en Eclipse
En este caso, vamos a la disposición siguiente como una muestra.
Coloque un botón y TextView, Button se va a mostrar en el extremo derecho.
Creo que en cualquier caso es diferente, es algo así como el siguiente ejemplo.
<? Xml version = "1.0" encoding = "UTF-8"?>
<RelativeLayout
xmlns: android = "http://schemas.android.com/apk/res/android"
android: layout_height = "wrap_content" android: layout_width = "fill_parent">
<TextView Android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: id = "+ id @ / nameText">
</ Vista de Texto>
<Botón de Android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: layout_alignParentRight = "true"
android: id = "+ id @ / detailButton"
android: text = "@ cadena / detalle">
</ Button>
</ RelativeLayout>
Esta vez para cumplir con los requisitos "Button es que se mostrará en la extrema derecha" que, a la disposición de los padres está utilizando RelativeLayout.
Por atributo a layout_width verdadero de RelativeLayout, la anchura completa de la pantalla y el padre, la anchura de la misma línea en el ListView.
Y es que a la verdadera layout_alignParentRight de Button, que, para ser colocado en el extremo derecho de RelativeLayout.
Este tema, de modo que para personalizar el control ListView, sólo una muestra más arriba es un ejemplo.
Junto con su favorito, por favor haga una presentación.
La siguiente es la creación de la ListView para mostrar la pantalla principal.
En primer lugar vamos a crear un diseño de pantalla.
Esta vez, vamos a decir simplemente, y TextView para mostrar el encabezado en la parte superior, y debajo de ella para que aparezca el ListView.
La cabecera, o va a utilizar para mostrar el título, o el número de la lista, esta vez usted sólo tiene que demostrar un carácter fijo simple.
Actividad para usar ListView para mostrar la pantalla, en lugar de la actividad normal, que heredará el ListActivity. A pesar de que es absolutamente necesario, es posible que una ventaja de heredar el ListActivity.
A pesar de que más tarde, hacer un diseño como el siguiente código XML de todos modos.
<? Xml version = "1.0" encoding = "UTF-8"?>
<LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
android: orientation = "vertical"
android: layout_width = "fill_parent"
android: layout_height = "fill_parent"
>
<TextView
android: layout_width = "fill_parent"
android: layout_height = "wrap_content"
android: text = "@ cadena / hola"
/>
<ListView Android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: id = "+ @ id / android: list">
</ ListView>
<TextView Android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: id = "+ @ id / android: empty"
android: text = "@ cadena / sin datos">
</ Vista de Texto>
</ LinearLayout>
En el LinearLayout, ha desplegado TextView, ListView, el TextView.
El primero es un TextView TextView para mostrar el nombre de sólo una aplicación sencilla.
ListView es TextView de la segunda y la tercera, quiero señalar un punto, androide: es el valor del atributo id.
Usted está vacío: @ + id / android: lista, @ + id / android.
TextView y dice algo y el último, esta es la lista de texto se muestra en los datos, incluso si no hay una en el primer lugar.
a citar texto que, aunque es @ cadena / sin datos, esto es una cadena de string.xml, que se define a sí mismo.
Por ejemplo, se han puesto en marcha la redacción como por ejemplo ". No tiene uno."
De esta manera, la actividad era para heredar el ListActivity es, automáticamente irme a las siguientes operaciones.
@ + Id / android: si ListView que se especifica en la lista no muestra nada, @ + id / android en su lugar: para mostrar la vista que se especifica en el vacío.
Es uno de los puntos antes mencionado, en lugar de una actividad normal, que es heredar la ListActivity convenientemente.
Definición de la disposición de la pantalla es tan lejos.
A continuación, se ofrecerá una clase que consta de la caja y poner la información, incluyendo una cadena para configurar el ListView.
¿Sabe usted algo que se llama JavaBean.
¿Sabes que creo que estaba estudiando Servlets y JSP si hay más.
JavaBean es y tengo unas cuantas reglas en sentido estricto, · · ·
Puse un poco de ir en la dirección de una historia diferente. Lo siento.
Piense por favor en sólo una clase simple, una de las variables privadas, y no es un método de setter getter y un público.
Aquí es suficiente.
A modo de ejemplo, en esta ocasión, el ListView se considera una característica que se implementa los nombres de productos y la mosca botón, a la dirección URL para ese producto.
La información requerida es el nombre del producto y la URL.
Usted ha hecho tanto la clase como un tipo de cadena, sólo para tener set para cada variable y el nombre del producto y la dirección URL se almacena, el método getter.
Es algo como lo siguiente como un ejemplo.
pública ItemBean la clase {
private String nombre = "";
private String url = "";
setName public void (String nombre) {
this.name = nombre;
}
getName public String () {
devolver el nombre;
}
public void setURL (String url) {
this.url = url;
}
pública getUrl String () {
volver url;
}
}
Se continuará para generar datos para una que se muestra en uno de los ListView, una instancia de esta clase.
He publicado el código de ejemplo para que más tarde, y ¿sabe usted en ese momento.
La siguiente es la aplicación de la Actividad.
En primer lugar, para heredar el ListActivity.
ListActivity es una subclase de la actividad, como es normal onCreate junto con la actividad.
En esta actividad, es para generar y mostrar los datos que se muestran en el ListView.
Para ListView es un método que setListAdapter (), los datos se visualizan mediante el establecimiento de la instancia del adaptador en una discusión.
Esto es como las prestaciones recibidas por los que, para heredar el ListActivity.
Adaptador es un ejemplo de los datos que se muestran uno a uno a la lista.
Adaptador para manejar más de uno, hay una clase llamada ArrayAdater, porque esta vez, para mostrar el ListView para personalizar, usted será ArrayAdapter heredan esta clase para crear una clase propia del adaptador.
Por favor, poner en práctica en la explotación de resultados, las siguientes clases. (Usted podría, por supuesto, también como un archivo separado de Java.)
clase ListAdapter extends ArrayAdapter <ItemBean> {
privada mInflater LayoutInflater;
privada mTitle TextView;
Botón mButton privada;
ListAdapter públicos (context, la lista de objetos <ItemBean>) {
super (contexto, 0, los objetos);
mInflater = (LayoutInflater) context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
}
Ver getView pública (posición final int, Ver convertView, padre ViewGroup) {
if (convertView == null) {
convertView = mInflater.inflate (R.layout.row, null);
}
final de ItemBean elemento = this.getItem (posición);
if (item! = null) {
mTitle = (TextView) convertView.findViewById (R.id.nameText);
mTitle.setText (item.getName ());
mButton = (Button) convertView.findViewById (R.id.detailButton);
mButton.setOnClickListener (OnClickListener nuevo () {
public void onClick (View v) {
Uri uri = Uri.parse (item.getUrl ());
Intención i = nuevo intento (Intent.ACTION_VIEW, uri);
startActivity (i);
}
});
}
volver convertView;
}
}
Clase que es heredera, y es ArrayAdapter <ItemBean>.
(Y no s ArrayAdapter, yo diría que incluso BaseAdapter, y BaseAdapter, por lo que se han encontrado y? Error no se puede resolver, lo estoy usando desde ArrayAdapter.)
Lateral para tomar ventaja de esta clase, la actividad, después de generar una ArrayList cuyos elementos están hechos por uno mismo ItemBean anterior, se puede utilizar para generar el adaptador que se pasa al constructor de esta clase.
getView método será llamado para una línea de datos por línea en los métodos que se pueden llamar desde la máquina virtual, para que se muestre.
De las siguientes partes:
final de ItemBean elemento = this.getItem (posición);
En este sentido, para que pueda tomar una instancia de ItemBean asociado a la línea con este método se le llama, entonces, por favor dé el tratamiento que desee.
En este ejemplo, cuando la TextView se establece en el nombre, se pulsa el botón, se establece que el hecho de que quiere conectar con el navegador a la dirección URL asociada.
En este momento yo no podría todavía un poco inseguro.
A continuación, vamos a echar un vistazo a un proceso llamado, que se fijará para generar este adaptador en realidad.
Esta vez, el nombre, la aplicación que vamos a llamada, la transición a la página de su motor de búsqueda pulsando el botón y el nombre del motor de búsqueda.
todo lo que necesitas hacer es lo siguiente () onCreate.
onCreate public void (paquete savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.main);
ItemBean yahoo = new ItemBean ();
yahoo.setName ("Yahoo");
yahoo.setUrl ("http://www.yahoo.co.jp");
ItemBean google = new ItemBean ();
google.setName ("Google");
google.setUrl ("http://www.google.co.jp");
Lista <ItemBean> list = new ArrayList <ItemBean> ();
List.Add (yahoo);
List.Add (google);
ListAdapter adapter = new ListAdapter (getApplicationContext (), la lista);
setListAdapter (adaptador);
}
Esta es la escritura sólida, por lo que la instancia ItemBean de Google y Yahoo, y luego añadirlo a una instancia de la <ItemBean> lista, para generar su propio adaptador de ListAdapter está utilizando el tipo entonces, setListAdapter () para este Voy a pasar.
Esto completa.
La siguiente pantalla se mostrará.

Este código de ejemplo se puede descargar desde abajo.
Cómo personalizar el código de ejemplo ListView
Una vez que entienda los métodos que aquí se presentan, para crear un descanso de diseño a su gusto, usted puede crear su propio adaptador de acuerdo con ella, sólo () para personalizarlo, debería ser capaz de hacer más probable es que incluso el diseño ListView lo getView.
Etc. Si desea utilizar la API de servicios Web, donde la información llega de nuevo juntos, puesto que crear una clase JavaBean, para analizar la respuesta, y se añade al ArrayList, para crear una instancia de una base de datos, me siento como Si Shiteyare, puedes aplicar el método presentado aquí fue después.
Bien, espero que se pueda imaginar lo que podría ser útil el uso de un genérico Qué · · ·.











