android - 如何获取RecyclerView.Adapter中的卡片位置?

标签 android android-studio android-recyclerview android-cardview

请帮我解决一个问题。问题是我需要获取卡片位置才能将该位置传达给另一个 Activity 。当我按下卡上的按钮时,我需要转移这个位置。如何获取卡牌位置?

RVAdapter.java

public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {

    private final static String myLog = "myLog";


    List<ItemsOfRow> items;
    private Context context;


    RVAdapter(List<ItemsOfRow> items, Context context) {
        this.items = items;
        this.context = context;
    }

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

    @Override
    public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.card_view, viewGroup, false);
        PersonViewHolder pvh = new PersonViewHolder(v);
        return pvh;
    }

    @Override
    public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {


        personViewHolder.imgGroupImage.setImageBitmap(items.get(i).getTitleImage());
        personViewHolder.txtTitleGroup.setText(items.get(i).getTitleName());
        personViewHolder.txtContentGroup.setText(items.get(i).getTitleContent());


        personViewHolder.btnShare.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent sendIntent = new Intent();
                sendIntent.setAction(Intent.ACTION_SEND);
                sendIntent.putExtra(Intent.EXTRA_TEXT, items.get(????).getTitleContent());
                sendIntent.setType("text/plain");
                context.startActivity(sendIntent);
            }
        });

        personViewHolder.btnLearnMore.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, QuoteActivity.class);
                intent.putExtra("title",items.get(?????).getTitleName());
                intent.putExtra("positionGroup", ?????? + "");
                view.getContext().startActivity(intent);
            }
        });

    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    public static class PersonViewHolder extends RecyclerView.ViewHolder{

        CardView cv;

        TextView txtTitleGroup;
        TextView txtContentGroup;

        ImageView imgGroupImage;

        Button btnShare;
        Button btnLearnMore;


        PersonViewHolder(final View itemView) {
            super(itemView);



            cv = (CardView) itemView.findViewById(R.id.cv);

            imgGroupImage = (ImageView) itemView.findViewById(R.id.img_group_image);
            txtTitleGroup = (TextView) itemView.findViewById(R.id.txt_title_group);
            txtContentGroup = (TextView) itemView.findViewById(R.id.txt_content_group);


            btnShare = (Button) itemView.findViewById(R.id.btn_share_group);
            btnLearnMore = (Button) itemView.findViewById(R.id.btn_learn_more);


        }
    }
}

最佳答案

您可以使用 viewHolder 的方法 getAdapterPosition()

关于android - 如何获取RecyclerView.Adapter中的卡片位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528391/

相关文章:

java - 获取android字符串中的属性值

android - 如何找到我的 sqlite 在 Android 中泄漏的位置

Android - 单击另一个时禁用对话框中的所有其他项目

android - 在 RecyclerView.Adapter 中绑定(bind) View 时出现 NullPointerException

java - 如果在另一个 TextView 中更改文本,则 TextView 文本动画将重新启动

java - Android - 缩放到用户位置并显示 map

android - 当我同步 gradle 时,android Studio 3.0 出现错误。错误:Cause: unable to find valid certification path to requested target

java - 为什么 setVisibility() 在按下按钮后不使我的按钮和布局可见?

java - 如何为RecyclerView设置BaseAdapter?

使用数据绑定(bind)的具有多个 View 类型的 Android recyclerview 适配器