4

だから私はAndroidアプリケーションを作成していて、設定の扱いを始めました。単にPreferenceActivityを使用すると、すべてが完全に機能しますが、PreferenceFragmentで使用すると、SettingsActivityにインテントを呼び出すボタンをクリックした直後にクラッシュしますエラー:

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}

これは設定アクティビティです:

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 レイアウトです。

<?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にかなり慣れていないので、どんな助けも素晴らしいでしょう!! ありがとう!!

編集: 正解のコメントで解決された問題

4

1 に答える 1

2

setContentView(R.layout.view_pager_layout)事前 に電話する必要があります

getFragmentManager().beginTransaction().replace(R.id.pager, new SettingsFragment()).commit();
于 2014-07-12T10:10:39.600 に答える