【问题标题】:What should I put to replace the errored "this" context?我应该用什么来替换错误的“this”上下文?
【发布时间】:2021-04-28 03:03:03
【问题描述】:

我正在为我正在开发的应用程序的主页活动中的一部分创建回收站视图。下面的代码实际上来自 Youtube 中的一个人,我只是跟着它,它在主页 java 上工作。但我决定把它放在一个片段中,所以我创建了一个片段,并将代码块从我的主页 XML 复制到我的片段 XML。我还将代码从我的主页 java 复制到片段 java。但是,这样做之后,上下文中的“this”现在在片段 java 中被标记为红色,即使它们在主页 java 中很好。我应该用什么来代替“this”?

这两段代码粘贴在下面:

private void setRecommendedRecycler(List<Recommended> recommendedList){
    recommendedRecycler = recommendedRecycler.findViewById(R.id.recyclerViewRecommended);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false);
    recommendedRecycler.setLayoutManager(layoutManager);
    recommendedAdapter = new RecommendedAdapter(this, recommendedList);
    recommendedRecycler.setAdapter(recommendedAdapter);
}

private void setPastOrdersRecycler(List<PastOrders> pastOrdersList){
    pastOrdersRecycler= pastOrdersRecycler.findViewById(R.id.recyclerViewPastOrders);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this, RecyclerView.HORIZONTAL, false);
    pastOrdersRecycler.setLayoutManager(layoutManager);
    pastOrdersAdapter = new PastOrdersAdapter(this, pastOrdersList);
    pastOrdersRecycler.setAdapter(pastOrdersAdapter);
}

【问题讨论】:

    标签: android-recyclerview androidx android-context


    【解决方案1】:

    你可以使用:requireActivity() 或 requireContext() 顺便说一句:在继续构建您的应用之前,您应该了解 Activity 和 Fragment 之间的区别。

    【讨论】:

    • 非常感谢您的回复。像这样? RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(requireActivity(), RecyclerView.HORIZONTAL, false);
    • 哦,非常感谢。但是这个怎么样?推荐适配器 = 新推荐适配器(此,推荐列表);这也是错误。
    • 你也可以使用 requireContext() 或 requireActivity()。实际上,“this”是一个上下文。所以你只需要为它加上一个上下文。
    猜你喜欢
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2018-03-15
    • 2010-11-05
    • 2010-12-06
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多