4

我正在使用 ViewPager 浏览不同的片段。它正在工作,但现在我想为每个片段添加设置,就像您可以通过以下方式使用活动一样:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.prefs);
}

但是当我放入addPreferencesFromResource(R.xml.prefs);我的 Fragment Eclipse 告诉我addPreferencesFromResource(R.xml.prefs);不存在时,如果我使用 FragmentActivity 也是如此。那么,如何在片段中使用首选项?我是使用 Fragments 设计的新手,与您在活动中的操作相比,一切都大不相同:/

谢谢 :)

==编辑==

我没有得到 FC,但它什么也不做,它是调用类 LCprefs() 的代码,此代码位于片段上:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if(DEBUG) Log.i(TAG, "onOptionsItemSelected(MenuItem item)");
        switch(item.getItemId())
        {
        case R.id.preferences:
            new LCprefs();
            break;
        case R.id.add:
            break;
        case R.id.load:
            break;
        case R.id.save:
            break;
        }
        return false;
    }

它是 LCprefs 类:

import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.util.Log;

    public class LCprefs extends PreferenceFragment{

        String TAG;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            Log.i(TAG, "LCprefs onCreate()");
            addPreferencesFromResource(R.xml.prefslc);
        }

    }

它是位于 xml 文件夹中的 prefslc.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <PreferenceCategory android:title="Varios" >

        <CheckBoxPreference
            android:defaultValue="false"
            android:key="cbFullscreen"
            android:summary="Aplicacion fullscreen"
            android:title="Fullscreen" />

    </PreferenceCategory>

</PreferenceScreen>
4

1 回答 1

1

片段需要是PreferencesFragment的一个实例。链接中的示例:

public static class PrefsFragment extends PreferenceFragment {

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

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preferences);
    }
}
于 2012-04-08T22:19:16.297 回答