创建多个首选项android

时间:2014-06-02 20:57:09

标签: android sharedpreferences preferences preferenceactivity

我在尝试创建我的应用程序的第二个首选项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);

1 个答案:

答案 0 :(得分:0)

尝试使用

  PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

当你获得SharedPreferences时。