Android PreferenceFragment找不到片段ID的视图 [英] Android PreferenceFragment No view found for id for fragment

查看:442
本文介绍了Android PreferenceFragment找不到片段ID的视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我正在制作一个android应用程序,然后开始处理首选项,当我仅使用PreferenceActivity时,一切正常,但是,如果将其与PreferenceFragment一起使用,则在单击调用意图的按钮后立即崩溃到SettingsActivity并出现错误:

So I'm making an android application and I started dealing with preferences, when I simply use a PreferenceActivity, everything works perfectly, however, if I use it with a PreferenceFragment, it crashes right after I click the button that calls intents to SettingsActivity with an error:

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{*app package*/*app package*.SettingsActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f08003d for fragment SettingsFragment{41cc1a98 #0 id=0x7f08003d}

这是SettingsActivity:

this is SettingsActivity:

public class SettingsActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //addPreferencesFromResource(R.xml.preference);
        // Display the fragment as the main content.
        getFragmentManager().beginTransaction()
                .replace(R.id.pager, new SettingsFragment())
                .commit();
    }


    public static class SettingsFragment extends PreferenceFragment {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            addPreferencesFromResource(R.xml.preference);

        }
    }
}

R.id.pager只是一个简单的viewPager布局:

R.id.pager is only a simple viewPager layout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

我的首选项xml:

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <CheckBoxPreference
        android:key="pref_sync"
        android:title="Sync?"
        android:summary="Do u wanna sync?"
        android:defaultValue="true" />

</PreferenceScreen>

我对android还是很陌生,所以任何帮助都很棒!!谢谢!

I'm still quite new to android so any help would be awesome!! Thanks!!

通过正确答案的注释解决了问题

Problem solved in comments of correct answer

推荐答案

您必须在

getFragmentManager().beginTransaction().replace(R.id.pager, new SettingsFragment()).commit();

这篇关于Android PreferenceFragment找不到片段ID的视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆