单击RecyclerView中的特定项目后如何打开URL?

问题描述

我正在将对象列表传递给适配器。这些对象属于Uploads类类型,仅包含DocnameDocurl。在每个RecyclerView项目上显示Docname后,我希望当用户单击任何项​​目时,浏览器应使用与该项目的URL对应的URL打开。

这是我尝试过的。它没有引发任何错误,并且应用程序运行平稳,但是当我单击任何项​​目时,什么都没有发生。

public class EbookRepresentAdapter extends RecyclerView.Adapter<EbookRepresentAdapter.EbookRepresentViewHolder> {

    private Context mContext;
    private List<Uploads> mbooks;
    public String bookurl;


    public EbookRepresentAdapter(Context context,List<Uploads> books) {
        mContext = context;
        mbooks = books;
    }

    public class EbookRepresentViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        public Context usecontext;
        public TextView mbookname;


        public EbookRepresentViewHolder(View itemView) {
            super(itemView);

            mbookname = itemView.findViewById(R.id.subjectname);
            usecontext=itemView.getContext();

        }


        @Override
        public void onClick(View v) {

            Intent intent=new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(bookurl));
            mContext.startActivity(intent);
        }
    }
    

    @NonNull
    @Override
    public EbookRepresentViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
        View v= LayoutInflater.from(mContext).inflate(R.layout.subjectcard,parent,false);
        return new EbookRepresentViewHolder(v);
    }

    @Override
    public void onBindViewHolder(@NonNull EbookRepresentViewHolder holder,int position) {

        Uploads yearSubjectcurrent= mbooks.get(position);
        String subname=yearSubjectcurrent.getDocname();
        bookurl= yearSubjectcurrent.getDocurl();
        //Log.d(TAG,"subname = "+ subname);
        holder.mbookname.setText(subname);

    }

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

如果有人可以帮助,那就太好了。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)