android - fragment 之间的通信

标签 android android-fragments android-listfragment android-fragmentactivity

我有默认的主从流程,它是在创建新项目时自动创建的。我的问题是。当我在细节侧添加一个按钮时。有没有办法通过按下那个按钮来更新我的列表面?也就是说,ItemDetailFragment 和 ItemListFragment 可以通信吗?

最佳答案

是的,只需通过 Activity 与听众交流即可。

您的 Activity :

public class MyActivity extends FragmentActivity implements OnFragmentClickListener {
    @Override
    public void OnFragmentClick(int action, Object object) {
        switch(action) {
        }
    }
}

监听类:

    public interface OnFragmentClickListener {
        public void OnFragmentClick(int action, Object object);
    }

然后您的 fragment 将在代码中的某处包含以下代码以实现该接口(interface):

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

然后你的 fragment 像这样相互通信:fragmentA -> activity -> fragmentB。您的 Activity 可以直接在 fragment 上调用方法,而不必担心同步问题。

来自 fragment a 的调用示例:

mListener.OnFragmentClick(GLOBAL_ACTION_KEY someObject);

Activity 然后处理:

public class MyActivity extends FragmentActivity implements OnFragmentClickListener {
    @Override
    public void OnFragmentClick(int action, Object object) {
        switch(action) {
            case GLOBAL_ACTION_KEY:
                // you call fragmentB.someMethod();
                break;
        }
    }
}

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

相关文章:

android - 如何通过 USB/ADB 查看 Android 应用输出

android - Android fragment 中 ListView 的自定义适配器

java - 从 Android Studio 中的 fragment 中单击 recyclerview 中的cardview

android - 调用 getGraph() 之前必须先调用 setGraph()

android - 列出未保持激活的主/详细流程的项目

android - 如何为 Android 渲染脚本创建一个无符号 8 整数数组?

android - 默认图片库无法以编程方式在 Android HoneyComb 平板电脑 (v 3.2) 中打开

android - 从相机捕获返回 Imageuri=null(但数据额外)

android - ListFragment多选不显示选择

java - Fragment 和 FragmentList 不显示 Android Studio