我正在使用ViewPager来浏览不同的片段。它正在运行,但现在我想为每个片段添加设置,就像以这种方式处理活动一样:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
但是当我将addPreferencesFromResource(R.xml.prefs);
放入我的片段时,Eclipse告诉我addPreferencesFromResource(R.xml.prefs);
不存在,如果我使用FragmentActivity则相同。那么,我如何在片段中使用首选项?
我是使用Fragments设计的新手,与你在活动中的表现相比,一切都有很大不同:/
谢谢:)
== EDIT ==
我没有获得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>
答案 0 :(得分: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);
}
}