RatingBar onClick

Tengo un ListView que usa diferentes archivos XML para crear Vistas y hacer elementos. Uno de estos archivos XML contiene una barra de clasificación. Todo se muestra y se ve excelente.

Estoy tratando de adjuntar un controlador onClick a la barra de calificación para iniciar una nueva actividad. Mi RatingBar es de estilo? Android: attr / ratingBarStyleSmall; así que es solo un indicador (quiero que el pequeño ClickBar haga clic para llevar al usuario a una Actividad en la que pueda hacer varias calificaciones).

Mi problema es que el controlador onClick para RatingBar nunca se ejecuta. Lo que lo hace más interesante es que he usado el mismo código para hacer clic en LinearLayout y funciona bien. ¿Alguien podría decirme por qué?

El getView de mi adaptador se ve así:

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    int type = getItemViewType(position);

    // get the View for this list item
    View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        switch (type) {
            // ...
            case TYPE_LOOKUP:
                v = vi.inflate(R.layout.layout_itemlist_itemlookup, parent, false);
                LinearLayout vLookup = (LinearLayout)v.findViewById(R.id.itemlist_lookup);
                if (vStore != null) {
                    vStore.setOnClickListener(new View.OnClickListener() {
                            public void onClick(View v) {
                                // THIS HANDLER WORKS FINE
                                Intent intentLaunchLookup = new Intent(ActivityItemList.this, ActivityLookup.class);
                                startActivity(intentLaunchLookup);
                            }
                        });
                }
                break;
            case TYPE_SEPARATOR:
                v = vi.inflate(R.layout.layout_itemlist_itemseparator, parent, false);
                RatingBar r = (RatingBar)v.findViewById(R.id.itemlist_rating);
                if (r != null) {
                    r.setOnClickListener(new View.OnClickListener() {
                            public void onClick(View v) {
                                // THIS HANDLER DOES NOT GET EXECUTED (r IS NOT NULL; SO THIS SHOULD HAVE BEEN CREATED)
                                Intent intentLaunchRating = new Intent(ActivityItemList.this, ActivityRating.class);
                                startActivity(intentLaunchRating);
                            }
                        });
                }
                break;
            // ...
        }
    }
    // …

  // return the created view
    return v;
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta