ListView.getCheckedItemPositions no puede devolver elementos marcados en SparseBooleanArray
Estoy tratando de leer los contactos en una lista con múltiples checkboxes
, pero cuando llamo a sparsebooleanarray
..sólo devuelve falso para todas las entradas de la lista, .. incluso para el cheque de s … Miré en este hilo ¿Por qué es ListView.getCheckedItemPositions () no devuelve valores correctos? … Pero cuando implemento el addClickHandlerToCheckBox que la fuerza se detiene .. esto ha estado molestándome durante 4 días .. por favor cualquier ayuda ..
public void populateContactList() { // Build adapter with contact entries final Cursor cursor = getContacts(); String[] fields = new String[] { ContactsContract.Data.DISPLAY_NAME }; SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.contact_entry, cursor, fields, new int[] {R.id.contactEntryText}); mContactList.setAdapter(adapter); mContactList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); proceedButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { SparseBooleanArray checked=mContactList.getCheckedItemPositions(); int len = mContactList.getCount(); for(int i=0;i<len;i++) { if(checked.get(i)==true) { String item = mContactList.getAdapter().getItem(checked.keyAt(i)).toString(); edt.append(","+item); } } } }); }
- Forzar un elemento ListView para permanecer "presionado" después de haber hecho clic?
- Android Listview mantiene los elementos antiguos después de los cambios del adaptador
- Android obtiene texto de todas las casillas marcadas en listView
- Cómo quitar el divisor inferior del pie de página en una vista de lista de android
- Deshabilitar evento de clic en los elementos de lista de reproducción de Android
- SwipeRefreshLayout - Tirar desde el fondo
- Desplazamiento con varios ListViews para Android
- Agregar un encabezado / pie de página en un listview en xml
- Frontera de elementos de listview en android
- Elemento de altura fija de Android ListView
- ArrayAdapter: debe proporcionar un id de recurso para una vista de texto
- ¿Devolver la fila vacía en Custom ArrayAdapter?
- Reposicionar la barra de desplazamiento de ListView con relleno
Creo que debería usar la vista del adaptador de lista.
Se le dará un oyente onCheckedChanged, por lo que también obtendrá la posición.
Me gusta…
holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int cupos = position+1; } });
Ahora mire todo el ejemplo:
Listview.setAdapter(new settingsBase(getApplicationContext())); private class settingsBase extends BaseAdapter{ public settingsBase(Context context) { layoutInflater = LayoutInflater.from(context); } @Override public int getCount() { return listview.length; } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder ; holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int cupos = position+1; } }); return convertView; } class ViewHolder{ TextView txtSettingname , txtShow ; RadioButton radioButton ; } }
Pruebe esto: le ayudará a obtener la posición y si está marcada como verdadera o falsa.
- ¿Cómo estática clase interna con una WeakReference a la clase externa puede evitar fugas de memoria de Android? Necesito un ejemplo
- ¿Cómo puedo aumentar el tamaño de la vista de mi lista?