GetLayoutInflater dentro de la costumbre simpleCursorAdapter
Estoy atascado con la creación de adaptador personalizado. Quiero setOnClickListener en los botones dentro de ListView y encontré este tema que parece bien cómo-a-setonclicklistener-en-el-botón-dentro de la lista, pero el problema es que estoy recibiendo error de código inalcanzable en la línea getLayoutInflater .
Aquí está mi código
- SetSupportActionBar no funciona FragmentActivity
- ¿Cómo enlazar DataBinding de Android a Menú?
- Colocar los botones OK / Cancel para que imiten el diseño en diálogos
- Cómo bloquear la orientación de la aplicación android en modo retrato?
- Método Java para android: layout_gravity
public class MyCursorAdapter extends SimpleCursorAdapter{ private final Context ctx; private Button tagButton = null; public MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); ctx = context; } @Override public View getView(int position, View convertView, ViewGroup parent) { return super.getView(position, convertView, parent); LayoutInflater li = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = li.inflate(R.layout.tags_list_element, null, true); tagButton= (Button)rowView.findViewById(R.id.tag_title); tagButton.setTag(position); tagButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { } }); return rowView; } }
Ambos métodos no funcionan para mí
LayoutInflater inflater = context.getLayoutInflater();
y
LayoutInflater li = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- Diseño como menú radial
- Cambiar la altura y el ancho de la vista de la imagen en android
- Disposición de Android - problema de alineación con ImageView
- ImageView rellena el ancho o altura de los padres, pero mantiene la relación de aspecto
- Android InputType parámetro de diseño - cómo permitir que los decimales negativos?
- Getmeasuredheight () y getmeasuredwidth () devuelve 0 después de View.measure ()
- Organizar diseños de Android en subcarpetas
- Vista personalizada con clics en Notificación en Android 2.3 o inferior
Tratar:
View myView = LayoutInflater.from(ctx).inflate(R.layout.my_view, null);
Además, ¿qué excepción se obtiene?
Edit: En su método "getView", la primera línea es "return …..", por lo que el resto de su método nunca se ejecutará, creo ….;)
Desde el punto de vista del rendimiento:
View myView = LayoutInflater.from(context).inflate(R.layout.my_view, parent, false);
Es correcto; Pero su más eficiente para almacenar el inflador en un campo final dentro del adaptador.
private final Context ctx; private final LayoutInflater mInflater; private Button tagButton = null; public MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); ctx = context; mInflater = LayoutInflater.from(ctx); }
Luego haga su operación getView.
//.... final View v = mInflater.inflate(R.layout.list_item, parent, false); //.... //stuff here // return v;
TAMBIÉN asegúrese de que el Contexto es su Contexto de Actividad, obtendrá problemas de Theming si utiliza el contexto incorrecto.
Saludos, Chris