首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将上下文作为DialogFragment的参数传递

将上下文作为DialogFragment的参数传递
EN

Stack Overflow用户
提问于 2013-03-18 02:05:43
回答 3查看 29.1K关注 0票数 32

可以将上下文变量传递给DialogFragment吗?

我在对话框中使用了下面的代码来传递字符串:

代码语言:javascript
复制
public static ConfirmDialog newInstance( String f) {
    ConfirmDialog d = new ConfirmDialog();

    Bundle args = new Bundle();
    args.putString("FILE_NAME", f);
    d.setArguments(args);

    return d;
}

但是我找不到任何像putString这样的传递上下文的函数。这是可能的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-18 02:08:48

您的DialogFragment有一个非常方便的方法来获取Context实例:

代码语言:javascript
复制
getActivity()

Fragment#getActivity()将返回Activity的实例(这是一个Context),Fragment被附加到该实例。在调用片段的onAttach()之后使用它。下面的图表说明了Fragment lifecycle,如您所见,使用getActivity()onCreate()onDestroy()应该是一个有效的调用。

有关详细信息,请阅读Fragment文档

票数 68
EN

Stack Overflow用户

发布于 2014-06-17 15:10:16

代码语言:javascript
复制
@Override
public void onAttach(Activity activity) {
    // TODO Auto-generated method stub
    super.onAttach(activity);
    context=activity;
}

需要使用onAttach方法:对于对话框片段

票数 9
EN

Stack Overflow用户

发布于 2015-02-11 17:03:41

像这样使用:

代码语言:javascript
复制
public class Dialog extends DialogFragment implements OnClickListener {
    public void onClick(View v) {
    switch (v.getId()) {
        case R.id.message: {
            this.startActivity(new Intent(context, Login.class));
                                 //or use getActivity() instead of context
            }
            break;
         }
    }
    @Override
    public void onAttach(Activity activity) {
        // TODO Auto-generated method stub
        super.onAttach(activity);
        context=activity;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15464263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档