RatingBar onClick

Ich habe eine ListView, die verschiedene XML-Dateien zum Erstellen von Ansichten und zum Erstellen von Elementen verwendet. Eine dieser XML-Dateien enthält eine RatingBar. Alles zeigt und sieht ausgezeichnet aus.

Ich versuche, einen onClick-Handler an die RatingBar anzuhängen, um eine neue Aktivität zu starten. Meine RatingBar hat Stil? Android: attr / ratingBarStyleSmall; Es ist also nur ein Indikator (ich möchte, dass der Benutzer mit dem kleinen RatingBar-Klick zu einer Aktivität weitergeleitet wird, in der er verschiedene Bewertungen vornehmen kann).

Mein Problem ist, dass der onClick-Handler für die RatingBar niemals ausgeführt wird. Was es interessanter macht, ist, dass ich denselben Code verwendet habe, um ein LinearLayout anklickbar zu machen, und es funktioniert einwandfrei. Kann mir jemand sagen warum?

Meine Adapter getView sieht so aus:

@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;
}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage