No se puede obtener el índice de elementos seleccionados en ArrayAdapter personalizado en mi ListView
Tengo problema con mi proyecto de Android, porque no puedo conseguir el índice del artículo seleccionado de mi lista con mi propio ArrayAdapter. He probado algunos ejemplos de tutoriales pero no funcionan. ¿Cuál es la solución?
Adaptador
public class myProductAdapter extends ArrayAdapter<myProductsGroup> { private List<myProductsGroup> productList; private Context context; public myProductAdapter(List<myProductsGroup> productList, Context ctx) { super(ctx, R.layout.list_products_row, productList); this.productList = productList; this.context = ctx; } @Override public int getCount() { return productList.size(); } /* public void onClick(View v) { int position = Integer.parseInt((String) v.getTag()); OrderFirstGridPage.setSelectedItem(position); } */ public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.list_products_row, parent, false); } TextView tv = (TextView) convertView.findViewById(R.id.title); tv.setTag(""+position); TextView distView = (TextView) convertView.findViewById(R.id.description); distView.setTag(""+position); tv.setText("aa"); return convertView; } }
En actividad
lv = (ListView) findViewById(R.id.listView1); lv.setAdapter(new myProductAdapter(setupArrayProductList((ArrayList<myProduct>) ProductList), OrderFirstGridPage.this)); lv.setSelector(R.drawable.selector_for_position_list);
- Android Alert Dialog no puede encontrar la vista
- Emulador de emparejamiento de par con emulador de Android
- Excepción LayoutInflater
- ¿Qué significa "servicio semipúblico" en Android?
- Cardview no respeta el orden del índice z en el diseño relativo
- Seguridad de subprocesos al realizar iteraciones a través de un ArrayList utilizando foreach
- ListView no aparece en MainActivty de mi aplicación (una imagen adjunta)
- Cómo conectar Android con MySQL usando el controlador Mysql JDBC
- Java.text.ParseException: Fecha inestable: "2014-06-04" (en el desplazamiento 5)
- MediaStore.Images.Thumbnails.getThumbnail devuelve una miniatura incorrecta en lugar de NULL
- Silenciar un video en un VideoView
- Android Eclipse ¿Cómo puedo guardar renderizado GLsurfaceView como * .png image
- División de la cadena usando el método split
Trate de usar esta línea de código:
lv = (ListView) findViewById(R.id.listView1); lv.setAdapter(new myProductAdapter(setupArrayProductList((ArrayList<myProduct>) ProductList), OrderFirstGridPage.this)); lv.setSelector(R.drawable.selector_for_position_list); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d("My POSITION",""+position); } });
Espero que obtendrá la posición exacta de listview seleccionado. Si usted consigue cualquier problema, por favor infórmeme. Espero que esto funcione.
Necesita implementar AdapterView.OnItemClickListener: http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html
public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)
Allí, obtendrá el índice de cada elemento.
Sólo tienes que establecer ese oyente en tu lista:
lv.setOnItemClickListener(yourListener);
- ¿Cómo implementar una mesa con esquinas redondas?
- Samsung Galaxy S3 no se muestra en la lista de dispositivos seleccionados mono para estudio visual android 2012