我在尝试创建我的应用程序的第二个首选项Activity时非常绝望。 我之前已经实现了一个非常好的SharedPreferences,但现在我正在尝试创建第二个首选项活动来处理特定的Activity,但我无法使其正常工作。基本上发生的是,无论我选择哪种颜色,它总是给我“默认值”= 1,好像它正在检查的首选项文件不存在。 这是我的preferenceActivity代码:
public class PreferenciasGrafica extends PreferenceActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferencias_grafica);
}
public void onBackPressed(){
//Preferencias
//PreferenceManager.getDefaultSharedPreferences(this);//Carga archivo preferencias
SharedPreferences appPrefs2 =this.getPreferences(MODE_PRIVATE);
int colore=Integer.parseInt(appPrefs2.getString("color","1"));//Pasa a samples las prefer. elegidas
//startActivity(new Intent(this, Main.class));
switch(colore){
case 1:
colore=Color.RED;
break;
case 2:
colore=Color.BLUE;
break;
case 3:
colore=Color.GREEN;
break;
}
Grafica grafica=new Grafica(colore);
//grafica.color=color;
startActivity(new Intent(this, Grafica.class));
finish();
}
}
这是首选项文件的xml:
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="preferencias_principal" >
<ListPreference
android:key="color"
android:title="Color de la gráfica"
android:summary="Selecciona el color a del gráfico"
android:entries="@array/colores"
android:entryValues="@array/valores"
android:defaultValue="0"/>
</PreferenceScreen>
这是数组文件:
<resources>
<string-array name="colores">
<item>Rojo</item>
<item>Azul</item>
<item>Verde</item>
</string-array>
<string-array name="valores">
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
</resources>
有人知道我在这里做错了什么吗?我完全浪费了这个!
编辑:问题解决了!!只需改变它并使其像这样:
SharedPreferences appPrefs2 = PreferenceManager.getDefaultSharedPreferences(this);
答案 0 :(得分:0)
尝试使用
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
当你获得SharedPreferences时。