Wie bekomme ich Klicks auf RecyclerView (NICHT die Kinder)

Gibt es eine Möglichkeit, ein @ zu setzeonClickListener auf einenRecyclerView?

Ich habe einRecyclerView mit einigen Kindern darin und Setzen einesOnClickListener auf dem übergeordnetenRecyclerView. DasonClick wird nicht ausgelöst, wenn ich auf diese Ansicht klicke. Siehe Beispielcode unten - wir möchten Klicks auf das übergeordnete Element erhalten,NICH die Kinder. In diesem Szenario interessieren uns Klicks auf die Elemente nicht.

Ich habe versucht, @ zu tsetFocusable(false), setClickable(false), undsetOnClickListener(null) auf die Kinder ohne Erfolg. Auf jeden Fall denke ich nicht, dass die Kinder dem Elternteil Klicks stehlen, denn wenn ich auf den Bereich klicke, in dem es keine Kinder gibt, werden die Klicks auch nicht registriert.

package com.formagrid.hellotest;

import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.Arrays;
import java.util.List;

public class HelloActivity extends Activity {

    private RecyclerView mRecyclerView;
    private RecyclerAdapter mAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hello);

        mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        mAdapter = new RecyclerAdapter(Arrays.asList("hi", "this", "is", "some", "text"));
        mRecyclerView.setAdapter(mAdapter);
        mRecyclerView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("patricia", view.toString());
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }

    @Override
    protected void onPause() {
        super.onPause();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.Holder> {

        public class Holder extends RecyclerView.ViewHolder {

            protected TextView textView;

            public Holder(TextView itemView) {
                super(itemView);
                this.textView = itemView;
            }

        }

        private List<String> contents;

        public RecyclerAdapter(List<String> contents) {
            this.contents = contents;
        }

        @Override
        public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
            return new Holder(new TextView(parent.getContext()));
        }

        @Override
        public void onBindViewHolder(Holder holder, int position) {
            holder.textView.setText(contents.get(position));
        }

        @Override
        public int getItemCount() {
            return contents.size();
        }

    }

}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage