【问题标题】:Activity to RecyclerView Adapter Communication(Recyclerview in Fragment)Activity 与 RecyclerView 适配器通信(片段中的 Recyclerview)
【发布时间】:2018-11-29 07:32:13
【问题描述】:

我有一个 Activity,其中包含一个带有 recyclerview 的片段。 recyclerview 的可编辑字段很少,需要在单击活动按钮时进行验证。

请告诉我解决此问题的解决方案或任何技术

【问题讨论】:

  • 请添加您的回收站视图代码以及您用于回收站视图的行。
  • 您可以使用接口在片段及其活动之间进行通信。为了验证 recyclerView 行中的字段,是否可以在 recyclerView 行中包含一个验证按钮而不是活动?这将使您更容易访问 recyclerView 适配器中的字段并进行验证。
  • @IshitaSinha 它不是关于在片段和活动之间传递数据。这是一个特殊的场景,你在片段中有一个 recyclerview,它有一个 edittext 和一个按钮在活动中。单击按钮时,我们需要对 edittext 内容进行验证。
  • 你可以检查一下 - stackoverflow.com/a/35395780/2128166 它也有相同的上下文在组件之间传递数据,所以看看它。

标签: android android-activity fragment


【解决方案1】:

使用此 (click here ) 功能在 FragmentfragmentFragmentActivity 之间共享数据和 ActivityActivity

1) 在您的onCreate 中声明BUS 并注册它

Bus bus = new Bus();
bus.register(this);

2) 发送数据或使用任何操作

bus.post(<your data or any Item>);

3) 不要忘记在您的onestroy 中取消注册

bus.unregister(this)

【讨论】:

  • Activity 到 Fragment 或者 Activity 到 Adapter 类是可能的
  • 如果你在同一个activity中声明了适配器类意味着你可以使用接口......或者另一个片段中的适配器类意味着你可以使用这个
【解决方案2】:

您可以通过“ID”或标签获取该片段实例(添加此片段时需要提供标签)。

现在您可以使用该片段的实例调用该片段的任何公共方法。

例如(使用标签),如果你想调用FragmentA的公共方法'show()'。然后在将它添加到活动时给它一个这样的标签:

Fragment fragmentA = new FragmentA();
getFragmentManager().beginTransaction()
.add(R.id.fragment_container,fragmentA,"YOUR_TARGET_FRAGMENT_TAG").commit(); 

并获取其实例(单击按钮或根据需要):

FragmentA fragmentA = getFragmentManager().findFragmentByTag("YOUR_TARGET_FRAGMENT_TAG");
fragmentA.show();

【讨论】:

    【解决方案3】:

    在您的片段中将 RecyclerView 声明为公共

    在您的活动中将片段声明为变量

    在点击监听器的活动中,使用

    获取 recyclerview
    fragment.recyclerview
    

    【讨论】:

    • 永远不要这样做。始终尝试使用侦听器接口在 2 个组件之间进行通信。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2017-07-09
    • 1970-01-01
    相关资源
    最近更新 更多