如何通过在Web视图中用另一个片段替换一个片段,以通过在recyclerview中单击不同的项目来打开不同的URL?

我的问题是,我有一个称为“ FragmentNewsItems”的片段中实现的recyclerview,该片段列出了cardview中的新闻集(图像+文本)。因此,我的任务是制作该应用程序,以便当我在recyclerview中单击其中一项时,该应用程序将其替换为具有Web视图的另一个片段。

一些好人建议我创建一个点击事件:

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

// add this line
private AdapterView.OnItemClicklistener onItemClicklistener;

    public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClicklistener {
            private ImageView image;
            private TextView text;
            FragmentNewsItems fragmentNewsItems = new FragmentNewsItems();


            public ViewHolder(@NonNull View itemView) {
                super(itemView);
                image = itemView.findViewById(R.id.image);
                text = itemView.findViewById(R.id.text);

                itemView.setOnClicklistener(this);
            }

      @Override
            public void onClick(View view) {
                mAdapter.onItemHolderClick(ViewHolder.this);
            }

        }

        public void setOnItemClicklistener(AdapterView.OnItemClicklistener onItemClicklistener) {
            this.onItemClicklistener = onItemClicklistener;
        }

        private void onItemHolderClick(ViewHolder holder) {
            if (onItemClicklistener != null)
                onItemClicklistener.onItemClick(null,holder.itemView,holder.getadapterPosition(),holder.getItemId());
        }
}

,然后将click事件添加到片段中:

public class FragmentNewsItems extends Fragment implements AdapterView.OnItemClicklistener{


View view;
    private RecyclerView recyclerView;
    private List<NewsItems> cyberNews;
    private FragmentNewsItems fragmentNewsItems;

    public FragmentNewsItems(){
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.f_news_items_layout,container,false);
        recyclerView = (RecyclerView) view.findViewById(R.id.news_items_recycler_view);

        RecyclerViewAdapter recyclerAdapter = new RecyclerViewAdapter(getcontext(),cyberNews);
// add this line
recyclerAdapter .setOnItemClicklistener(this);

        recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
        recyclerView.setadapter(recyclerAdapter);
        return view;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        cyberNews = new ArrayList<>();
        cyberNews.add(new NewsItems(R.drawable.cyber1,"The  of cybersecurity in 5G-connected world"));
        cyberNews.add(new NewsItems(R.drawable.cyber2,"Google discovered several iPhone security flaws,and Apple still hasn't patched one"));
        cyberNews.add(new NewsItems(R.drawable.cyber3,"WhatsApp and Telegram media files aren't so secure"));
        cyberNews.add(new NewsItems(R.drawable.cyber4,"microsoft Exposes Russian Cyberattacks on Phones,Printers,Video Decoders"));
        cyberNews.add(new NewsItems(R.drawable.cyber5,"Tesla demonstrated the power of The Internet of Things"));

    }


@Override
    public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
// here open new activity or replace fragment which have webview.
}

赞:

@Override
    public void onItemClick(AdapterView<?> parent,long id) {
// here open new activity or replace fragment which have webview.
}

但是您看到一条注释,上面写着打开一个新活动或替换具有Web视图的片段。我多次尝试用另一个片段替换,但是它根本无法打开我的片段。我的意思是,它会加载布局,但不会替换为另一个片段。我是Android的新手,老实说,我不知道出了什么问题。您能帮我编码吗?

jchl_wyl 回答:如何通过在Web视图中用另一个片段替换一个片段,以通过在recyclerview中单击不同的项目来打开不同的URL?

为网络视图创建一个新片段,并使用您的活动传递数据并替换新片段:

检查我对这个问题的答案

  

https://stackoverflow.com/questions/58680300

本文链接:https://www.f2er.com/3166320.html

大家都在问