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); 

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); 
  • ¿Por qué los paquetes del módulo de biblioteca no existen en la compilación, incluso cuando Android Studio no muestra errores en el código?
  • Análisis de datos brutos recibidos desde el dispositivo bluetooth HDP
  • ¿Deberíamos referirnos a los objetos por sus interfaces en la plataforma Android
  • Obtener esquemas de fuentes mediante programación
  • Permiso de Android.INTERACT_ACROSS_USERS denegación
  • Android Get Keys de preferences.xml
  • Cómo adjuntar un oyente a un botón de radio
  • Mostrar Light AlertDialog usando Theme.Light.NoTitleBar
  • ¿Es Hibernate un exceso para una aplicación de Android?
  • ¿Por qué funciona este código Java? Compilador no se queja de cierre
  • Cómo configurar el color de fondo de un elemento específico en listview por posición?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.