usar item ejemplo custom como android listactivity

custom - ¿Puede alguien proporcionarme un ejemplo de Two_line_list_item en Android?



listview android eclipse (1)

Todavía tengo que encontrar un ejemplo que realmente use el diseño incorporado, android.R.layout.two_line_list_item y un ListView ListActivity de ListActivity . Así que aquí va.

Si tiene prisa, la TwoLineArrayAdapter.getView() continuación es la parte importante de usar el diseño predeterminado de two_line_list_item .

Tu información

Tienes una clase que define los elementos de tu lista. Asumiré que tienes una serie de estos.

public class Employee { public String name; public String title; }

Un resumen TwoLineArrayAdapter

Esta clase abstracta se puede reutilizar y hace que la definición de un ListView dos líneas sea mucho más fácil más adelante. Puede suministrar su propio diseño, pero el constructor de dos argumentos utiliza el diseño two_line_list_item . El único requisito para los diseños de elementos de lista personalizados es que deben usar @android:id/text1 y @android:id/text2 para identificar sus hijos de TextView , tal como two_line_list_item hace two_line_list_item .

public abstract class TwoLineArrayAdapter<T> extends ArrayAdapter<T> { private int mListItemLayoutResId; public TwoLineArrayAdapter(Context context, T[] ts) { this(context, android.R.layout.two_line_list_item, ts); } public TwoLineArrayAdapter( Context context, int listItemLayoutResourceId, T[] ts) { super(context, listItemLayoutResourceId, ts); mListItemLayoutResId = listItemLayoutResourceId; } @Override public android.view.View getView( int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater)getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View listItemView = convertView; if (null == convertView) { listItemView = inflater.inflate( mListItemLayoutResId, parent, false); } // The ListItemLayout must use the standard text item IDs. TextView lineOneView = (TextView)listItemView.findViewById( android.R.id.text1); TextView lineTwoView = (TextView)listItemView.findViewById( android.R.id.text2); T t = (T)getItem(position); lineOneView.setText(lineOneText(t)); lineTwoView.setText(lineTwoText(t)); return listItemView; } public abstract String lineOneText(T t); public abstract String lineTwoText(T t); }

Un concreto TwoLineArrayAdapter

Finalmente, aquí está el código que escribe específico para su clase de Empleado para que se muestre en su ListView .

public class EmployeeArrayAdapter extends TwoLineArrayAdapter<Employee> { public EmployeeArrayAdapter(Context context, Employee[] employees) { super(context, employees); } @Override public String lineOneText(Employee e) { return e.name; } @Override public String lineTwoText(Employee e) { return e.title; } }

Activity.onCreate ()

En el método onCreate() tu Actividad, tendrás un código que se verá así:

employees = new Employee[...]; //...populate the employee array... employeeLV = (ListView)findViewById(R.id.employee_list); employeeLV.setAdapter(new EmployeeArrayAdapter(this, employees);

¿Puede alguien proporcionarme ejemplo de two_line_list_item?