如何在ViewPager中使用片段偏好设置?

4

我正在使用ViewPager来滑动不同的片段。它正在工作,但现在我想为每个片段添加设置,就像在Activities中可以这样做:

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

但是当我在我的Fragment中使用addPreferencesFromResource(R.xml.prefs);时,Eclipse告诉我addPreferencesFromResource(R.xml.prefs);不存在,如果我使用FragmentActivity也是一样。那么,我该如何在Fragments中使用preferences呢? 我刚开始设计Fragments,一切都与在Activities中的做法非常不同 :/ 谢谢 :)
==编辑== 我没有得到一个FC,但它什么也没做,这是调用类LCprefs()的代码,这个代码在一个Fragment中:
@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>
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);
    }
}

你不能只是这样创建一个新的片段。你需要将它添加到视图中,或者围绕它构建一个新的活动。 - Joakim Berglund

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接