Как сделать Recyclerview (фрагмент) кликабельным - PullRequest
0 голосов
/ 18 апреля 2020

Я создал вкладку для своего приложения и добавил в одну из вкладок ссылку переработчика, она работает нормально, но я не могу сделать ее кликабельной. Я хочу сделать его кликабельным, чтобы при щелчке по указанному элементу c в списке вы переходили к новому действию. Я создал новые действия в качестве места назначения для кликов. Есть сообщения о том, как сделать это в обычном действии, и они, кажется, не работают для меня, когда я пытался реализовать их после модификации

моего Listadapter. java

package com.example.android.split;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class ListAdapter extends RecyclerView.Adapter {

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item, parent,false);
        return new ListViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        ((ListViewHolder) holder).bindView(position);
    }

    @Override
    public int getItemCount() {
        return Data.iname.length;
    }

    private class ListViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        private TextView mItemText;

        public ListViewHolder(View itemView){
            super(itemView);
            mItemText = (TextView) itemView.findViewById(R.id.itemText);
            itemView.setOnClickListener(this);
        }

        public void bindView(int position){
            mItemText.setText(Data.iname[position]);
        }

        public void onClick(View view){

        }
    }
}

мой фрагмент кода

package com.example.android.split;

import android.os.Bundle;

import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.HeaderViewListAdapter;



/**
 * A simple {@link Fragment} subclass.
 */
public class tab1 extends Fragment {

    public tab1() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_tab1, container, false);

        RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.listRecyclerview);

        ListAdapter listAdapter = new ListAdapter();
        recyclerView.setAdapter(listAdapter);
        RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(layoutManager);

        return view;
    }
}

1 Ответ

0 голосов
/ 18 апреля 2020

Пожалуйста, добавьте приведенный ниже код в метод onBindViewHolder вашего класса адаптера.

holder.itemView.setOnClickListener {
        //Add intent to navigate to other screen
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...