首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android首选项活动IllegalArgumentException:此活动的无效片段

Android首选项活动IllegalArgumentException:此活动的无效片段
EN

Stack Overflow用户
提问于 2016-01-06 22:07:10
回答 1查看 4.1K关注 0票数 8

我的偏好活动有问题。我创建了一个偏好屏幕和一个偏好活动。在我使用Android4.2.2的手机上,它工作得很好。但是,在使用Android5.0的Android模拟器上,它会出现以下错误:IllegalArgumentException: Invalid fragment for this activity.,这是因为这段代码吗?:

代码语言:javascript
运行
复制
 @Override
    protected boolean isValidFragment(String fragmentName) {
        return MyPreferenceFragment.class.getName().equals(fragmentName);
    }

第二个偏好片段是MyExportPreferenceFragment.我如何在一项活动中同时使用这两种方法?

谢谢你的帮忙

//编辑:找到了一个解决方案,但可能太麻烦了^^

代码语言:javascript
运行
复制
@Override
    protected boolean isValidFragment(String fragmentName) {
        if(MyPreferenceFragment.class.getName().equals(fragmentName)) {
            return MyPreferenceFragment.class.getName().equals(fragmentName);
        }
        else {
            return MyExportPreferenceFragment.class.getName().equals(fragmentName);
        }
    }

这样可以吗?还是那样做很危险?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-31 06:10:44

枚举所有-- isValidFragment中的首选项片段

MySettingsActivity.class

代码语言:javascript
运行
复制
@Override
    protected boolean isValidFragment(String fragmentName) {
        return Fragment1.class.getName().equals(fragmentName) ||
                Fragment2.class.getName().equals(fragmentName) ||
                Fragment3.class.getName().equals(fragmentName) ||
                Fragment4.class.getName().equals(fragmentName) ||
                Fragment5.class.getName().equals(fragmentName);
    }

Headers.xml

代码语言:javascript
运行
复制
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header 
        android:title="@string/one"
        android:summary="@string/one_sum"
        android:fragment="com.***.fragment1" />
</preference-headers>

Preferences.xml

代码语言:javascript
运行
复制
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="@string/category_basic">
        <PreferenceScreen
        android:icon="@drawable/ic_three"
        android:fragment="com.***.fragment3"
        android:title="@string/text"
        android:summary="@string/text_sum"
        android:key="@string/key" />
    </PreferenceCategory>
</PreferenceScreen>
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34643733

复制
相关文章

相似问题

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