Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在一个片段中初始化按钮,但在另一个片段上单击设置_Android_Android Fragments - Fatal编程技术网

Android 在一个片段中初始化按钮,但在另一个片段上单击设置

Android 在一个片段中初始化按钮,但在另一个片段上单击设置,android,android-fragments,Android,Android Fragments,我已经在FragmentA中定义了按钮,但是我想设置它在FragmentB上的点击。我已经为此使用了接口,但它会导致空指针异常。请给我一些建议。这在Android中非常常见,可以称为组件间通信,您可以在组件间触发事件或消息 虽然有很多方法可以实现它,比如使用静态实体,但在您的案例中,它将在父活动中编码,因为两个片段案例都可以看到它,但这不是一个好的实践,并且有很多副作用 您可以考虑使用事件处理程序特定的库,如EnviBUS、Otto、RxJava和RxAndroid。 作为初学者,您可以从Eve

我已经在FragmentA中定义了按钮,但是我想设置它在FragmentB上的点击。我已经为此使用了接口,但它会导致空指针异常。请给我一些建议。

这在Android中非常常见,可以称为组件间通信,您可以在组件间触发事件或消息

虽然有很多方法可以实现它,比如使用静态实体,但在您的案例中,它将在父活动中编码,因为两个片段案例都可以看到它,但这不是一个好的实践,并且有很多副作用

您可以考虑使用事件处理程序特定的库,如EnviBUS、Otto、RxJava和RxAndroid。


作为初学者,您可以从EventBus开始,尽管我个人喜欢使用Rxjava

它们需要具有相同的父活动,然后只需要具有要在活动中调用的click方法。从一个片段调用另一个片段是一种非常糟糕的做法。我有两个选项卡布局,所以从片段调用片段是我唯一的选择。请发布到目前为止的代码。不要这样做。不要试图操纵另一个片段中的一个片段。至少使用活动来实现这一点。