кнопка прослушивания щелчка внутри адаптера - PullRequest
0 голосов
/ 17 февраля 2019

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

Adapter.java

class MyViewHolder extends RecyclerView.ViewHolder {

    TextView name,id,number;
    Button btn;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        btn = (Button) itemView.findViewById(R.id.butCheck);

    }
    public void onClick(int position)
    {
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, position+"is clicked", Toast.LENGTH_SHORT).show();
                Intent intent= new Intent(Adapter.this,DetailsActivity.class);
                startActivity(intent);
            }
        });
    }
}

Полный класс адаптера

Public Class Adapterрасширяет RecyclerView.Адаптер {

Context  context;
ArrayList<Profile> profiles;

public Adapter(Context c, ArrayList<Profile> p)
{
    context = c;
    profiles= p;
}



@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.cardlayout,viewGroup,false));
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {


    if(profiles.get(i).getPermission()) {
        myViewHolder.btn.setVisibility(View.VISIBLE);
        myViewHolder.onClick(i);
    }

}

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

class MyViewHolder extends RecyclerView.ViewHolder {


    Button btn;
    public MyViewHolder(@NonNull View itemView) {
        super(itemView);

        btn = (Button) itemView.findViewById(R.id.butCheck);

    }
    public void onClick(int position)
    {
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, position+"is clicked", Toast.LENGTH_SHORT).show();
                Intent intent= new Intent(,DetailsActivity.class);
                startActivity(intent);
            }
        });
    }

Слушатель нажатия кнопки внутри CardView с использованием рециркулятора Адаптер

Адаптер рециркулятора

...