¿Cómo conseguir el foco del niño de ListView?
Tengo un ListView en el cual agrego artículos de la fila dinámicamente. Cada fila tiene un no de childs. Ahora estoy fijando en los oyentes del tecleo en estos childs, y en ellos me pide guardar estos artículos del niño finales, él trabaja muy bien con ellos y está bien hacer esto mientras que estoy creando una clase en cada uno en el oyente del tecleo.
Aquí isFree es un checkbox final.
- Problema al seleccionar el color del selector ListView cuando se pulsa
- Establecer LayoutParams de ListView cuando se utiliza DrawerLayout con fragmentos
- Android listview viewholder. Cuándo usarlo, y cuándo no
- Android - deshabilitar el elemento de vista de lista haga clic y vuelva a habilitarlo
- ListView con barra de progreso en cada elemento?
isFree.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { // TODO Auto-generated method stub if (isFree.isChecked()){...} } });
Pero no lo siento como una buena práctica de programación, quiero usar alguna función que debe detectar qué niño fue hecho clic y luego debería ser capaz de acceder a su fila usando getParent y luego sus elementos hermanos utilizando getChildAt (índice) Así que, he utilizado esta:
isFree.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { // TODO Auto-generated method stub CheckBox tv=(CheckBox) getCurrentFocus(); TableRow row = (TableRow)tv.getParent(); TextView tv1=(TextView) row.getChildAt(5); if (tv.isChecked()){...} } });
Pero cuando lo uso, en el tema enfocado realmente devuelve el listview, pero quiero elemento enfocado en la fila.
- Seleccione sólo un botón de radio de la vista de lista
- ListView no se actualiza al agregar a SQLiteDatabase
- Android ListView Lista de estado que no muestra el fondo del elemento predeterminado
- ¿No puede obtener valores de EditViewText de ListView?
- Android: EditText pierde contenido en desplazamiento en ListView?
- Detener la animación de desplazamiento ListView
- Sólo en algunos teléfonos, ListView no se actualiza después de notifyDataSetChanged ()
- Separadores ListView con un CursorAdapter
usted puede conseguir qué niño de listview fue chascado con onItemClickListener, pero si usted quiere hacer una cierta acción en una fila que tiene cierta caja de cheque o alguna otra opinión clickable y usted desea realizar una cierta acción en esos tecleo entonces pienso que usted tiene que utilizar tecleo oyentes en esas vistas sí mismo.
pero si desea obtener listitem fila al hacer clic en esas vistas individuales, puede utilizar el método setTag de la clase de vista para almacenar el índice y, a continuación, obtener el elemento de la fila de ese índice en sus oyentes de clic.
public view getView(int position, View convertView, ..) { .... .... .... // your code convertView.setTag(position); return convertView; } isFree.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { // TODO Auto-generated method stub if (arg0.isChecked()){ int index = arg0.getTag(); View v = listview.getItemAtPosition(index); // or get the adapter get data list from it and then index it. } } });
Tenga en cuenta que: No he usado el método de cambio oncheckedchange libre final.
En el método setOnCheckedChangeListener
, el primer parámetro es un CompoundButton
que es una setOnCheckedChangeListener
de CheckBox
. Así que, en realidad, arg0 es tu casilla de verificación. Utilícelo para recuperar el elemento de lista padre y hacer sus cosas.
isFree.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { // TODO Auto-generated method stub TableRow row = (TableRow)arg0.getParent(); TextView tv1=(TextView) row.getChildAt(5); if (arg0.isChecked()){...} } });
- FileNotFoundException para el archivo apk con HttpURLConnection en Android
- Android 2.3.4, OpenSL ES y enorme log-spam por razones desconocidas