从自定义首选项获取活动对象

时间:2011-09-16 14:07:49

标签: android

我正在尝试将facebook-connect集成到我的Android应用程序中。我通过互联网看到的所有示例都是从Android活动创建连接。我正在做一些不同的事情,用户可以从自定义首选项配置其与Facebook的连接。我在twitter和foursquare上做得很成功。但是,Facebook.authorize方法需要一个Activity作为参数,因为我在偏好中,我无法找到任何对活动对象的引用。

所以我的问题是,如何获得偏好内活动的参考?

谢谢大家 Ť

3 个答案:

答案 0 :(得分:6)

我能够通过将Context对象转换为Activity来获取Activity引用。

Activity activity = (Activity) context;

或使用自定义活动,您也可以执行此操作

SettingsActivity activity = (SettingsActivity) context;

答案 1 :(得分:4)

这是一个老问题,尽管我使用com.android.support:preference首选项片段的以下函数:

public static Activity getPrefActivity(Preference pref)
{
    Context c = pref.getContext();
    if (c instanceof ContextThemeWrapper)
    {
        if (((ContextThemeWrapper) c).getBaseContext() instanceof Activity)
            return (Activity) ((ContextThemeWrapper) c).getBaseContext();
    }
    else if (c instanceof Activity)
        return (Activity) c;
    return null;
}

答案 2 :(得分:0)

假设您有一项名为MyActivity的活动,您可以使用MyActivity.class吗?