相关疑难解决方法(0)

从片段显示对话框?

我有一些需要显示常规对话框的片段.在这些对话框中,用户可以选择是/否答案,然后片段应该相应地运行.

现在,Fragment该类没有onCreateDialog()覆盖的方法,所以我想我必须在包含的外部实现对话框Activity.没关系,但是Activity需要以某种方式向片段报告所选择的答案.我当然可以在这里使用回调模式,因此片段在Activity一个监听器类中注册自己,而Activity会通过它报告回答,或类似的东西.

但对于一个简单的任务来说,这似乎是一个相当大的混乱,因为在一个片段中显示一个"简单的"是 - 否对话框.而且,这样我的Fragment自足也会减少.

有没有更清洁的方法来做到这一点?

编辑:

这个问题的答案并没有真正详细解释如何使用DialogFragments来显示Fragments中的对话框.所以AFAIK,走的路是:

  1. 显示片段.
  2. 需要时,实例化DialogFragment.
  3. 将原始Fragment设置为此DialogFragment的目标,使用.setTargetFragment().
  4. 使用原始片段中的.show()显示DialogFragment.
  5. 当用户在此DialogFragment上选择一些选项时,通知原始片段有关此选择(例如,用户单击"是"),您可以使用.getTarget()获取原始片段的引用.
  6. 关闭DialogFragment.

android android-dialog android-dialogfragment

114
推荐指数
4
解决办法
12万
查看次数

使用像Otto或EventBus这样的事件库是一种处理活动,片段和后台线程之间关系的推荐方法

在大多数情况下,处理案件时

  • 用户thread(AsyncTask)执行后台处理
  • 将计算结果传回给ActivityFragment
  • Activity或者Fragment在用户线程完成后台处理之前可能会重新创建

到目前为止,从许多可靠的来源,我可以看到推荐的方法是使用 保留片段

来源

我不时地听说事件总线库可以处理活动,片段和后台线程之间的关系.(请参阅https://github.com/greenrobot/EventBus.它表示在活动,片段和后台线程表现良好)

我遇到了一些非常受欢迎的事件总线库

我想知道,当处理活动,碎片和后台线程之间的关系时,事件总线方法与保留碎片方法有何不同?

推荐哪种方式?

android event-bus android-asynctask otto greenrobot-eventbus

44
推荐指数
1
解决办法
2万
查看次数

如何从FragmentActivity获取片段实例?

我在FragmentActivity中设置了内容视图,活动将根据布局文件中指定的类名为我创建片段实例.但是我怎样才能获得该片段实例?

public class MyActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle extra) {
        super.onCreate(extra);
        setContentView(R.layout.page_fragment);
    }
}
Run Code Online (Sandbox Code Playgroud)

user-interface android android-fragments

39
推荐指数
2
解决办法
11万
查看次数