gpt4 book ai didi

android - Activity fragment 通信 : cluttering

转载 作者:行者123 更新时间:2023-11-30 03:00:15 26 4
gpt4 key购买 nike

要将内容传达给您的托管 ActivityAndroid Docs建议让您的 Activity 实现一些接口(interface),并将其转换为您的 Fragment 中的该接口(interface):

@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnArticleSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
}
}

但是,如果您的 Activity 是许多 Fragment 的宿主,您的 Activity 声明将类似于:

public class MainActivity extends Activity implements ListenerA, ListenerB, ListenerC /* etcetera */

当然,这无助于提高可读性、模块化等,更不用说将所有已实现的方法都塞进 Activity 的主体本身了。

有没有更好的方法来实现这一点?如果我没记错的话,建议不要手动为 Fragment 设置监听器,尽管我找不到这方面的来源。

最佳答案

我可以想到两种实现沟通的方法,但我认为它们可能是不好的做法,所以请谨慎对待!

第一种方法是使用 getActivity() 获取对更新它的 Activity 方法的引用。您只需要注意 fragment Activity 引用当前不为空即可。

第二种是使用广播通知 Activity 某些内容已更改,并使用广播接收器根据收到的广播执行不同的操作。 (似乎有点矫枉过正)。

关于android - Activity fragment 通信 : cluttering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22643762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com