Problema de casilla de verificación en la aplicación instalada en listview

Me referí a estos enlaces enlace , enlace , enlace , enlace

Pero mi problema no se está resolviendo. Sé que hay muchas preguntas con respecto a este problema, pero mi problema es

Tengo 4 clases A, B, C, D

De clase A i goto Clase B donde todas las aplicaciones instaladas aparecen en listview. En la clase B i enviar Packagelist a la clase c (clase BaseAdapter) y luego qué aplicaciones el usuario ha seleccionado pasará a la clase A.

Así que mi problema es dónde o cómo puedo usar la clase POJO para pasar las aplicaciones instaladas a la clase baseadapter y, a continuación, cómo puedo obtener todos los valores seleccionados (nombre de la aplicación de cadena) y pasarlo a la clase A. y también cómo puedo mantener el estado de verificación de Casilla de verificación.

Cualquier ayuda plz.

Clase de adaptador personalizada

import java.util.List; import android.app.Activity; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.TextView; import android.widget.Toast; public class AppListAdapter extends BaseAdapter { List<PackageInfo> packageList; Activity context; PackageManager packageManager; boolean[] itemChecked; int checkBoxCounter = 0; int checkBoxInitialized = 0; public AppListAdapter(Activity context, List<PackageInfo> packageList, PackageManager packageManager) { super(); this.context = context; this.packageList = packageList; this.packageManager = packageManager; itemChecked = new boolean[packageList.size()]; } private class ViewHolder { TextView apkName; CheckBox ck1; } public int getCount() { return packageList.size(); } public Object getItem(int position) { return packageList.get(position); } public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // final ViewHolder holder; checkBoxCounter = 0; checkBoxInitialized = 0; LayoutInflater inflater = context.getLayoutInflater(); if (convertView == null) { convertView = inflater.inflate(R.layout.apklist_item, null); final ViewHolder holder = new ViewHolder(); holder.apkName = (TextView) convertView .findViewById(R.id.ApkList_tvappname); holder.ck1 = (CheckBox) convertView .findViewById(R.id.ApkList_checkBox); holder.ck1 .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { AppsSelected element = (AppsSelected) holder.ck1 .getTag(); element.setSelected(buttonView.isChecked()); if (checkBoxCounter <= checkBoxInitialized) { // increment counter, when we scroll the List it // execute onCheckedChanged everytime so by // using this stuff we can maintain the state checkBoxCounter++; } else { element = (AppsSelected) holder.ck1.getTag(); element.setSelected(buttonView.isChecked()); if (element.isSelected()) Toast.makeText( context, "You selected " + element.getName(), Toast.LENGTH_LONG).show(); else Toast.makeText( context, "Not selected " + element.getName(), Toast.LENGTH_LONG).show(); } } }); convertView.setTag(holder); holder.ck1.setTag(packageList.get(position)); } else { ((ViewHolder) convertView.getTag()).ck1.setTag(packageList.get(position)); } ViewHolder holder = (ViewHolder) convertView.getTag(); PackageInfo packageInfo = (PackageInfo) getItem(position); Drawable appIcon = packageManager .getApplicationIcon(packageInfo.applicationInfo); String appName = packageManager.getApplicationLabel( packageInfo.applicationInfo).toString(); appIcon.setBounds(0, 0, 40, 40); holder.apkName.setCompoundDrawables(appIcon, null, null, null); holder.apkName.setCompoundDrawablePadding(15); holder.apkName.setText(appName); return convertView; } } 

Usted puede referirse a mi respuesta aquí, lo que puede hacer es, estado de la casilla de verificación de la tienda en una matriz booleana, entonces usted no se enfrentará a este problema …..

Casilla de verificación de Android tema multiseleccionado

  • Entradas duplicadas en ListView
  • ListView de Android con casilla de verificación: desactiva automáticamente
  • Conexión de TextWatcher con un adaptador personalizado para filtrar texto a través de EditText
  • ¿Cómo puedo crear un ListView con divisiones de línea punteadas / punteadas en Android?
  • Cree dinámicamente un listview con filas de encabezado para cada mes
  • ¿Cómo puedo replicar este patrón de interfaz de usuario: haga clic en el elemento ListView y expanda debajo de él?
  • ¿Cómo actualizar la vista de lista de Android?
  • Cómo agregar un hijo a un padre particular en el listview expandible android
  • Desplazamiento con varios ListViews para Android
  • Listview recarga las imágenes ya cargadas mediante el cargador de imágenes Universal
  • Deshabilitar clic largo para encabezados (o pies de página) en un ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.