0

내 앱의 두 번째 환경 설정 활동을 만들려고 절실히 기다리고 있습니다. 이전에 꽤 잘 작동하는 SharedPreferences를 구현했지만 이제는 특정 Activity에서 작동하도록 두 번째 기본 설정 활동을 만들려고 시도하고 있지만 올바르게 작동하게 만들 수는 없습니다. 기본적으로 무슨 일이 일어나는지는 내가 선택한 색상에 관계없이 검사중인 환경 설정 파일이 존재하지 않는 것처럼 항상 "기본값"= 1을 제공한다는 것입니다. 이 환경 설정 파일의 XML입니다여러 환경 설정 만들기 android

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(); 

    } 
} 

: 여기에 PreferenceActivity를 내 코드입니다

<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

보십시오 당신이 된 SharedPreferences를 획득 할 때

PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

를 사용하여.

+0

당신은 내 하루를 만들어 줘서 고마워. 이거 그냥 넣어 줘야 해. SharedPreferences appPrefs2 = PreferenceManager.getDefaultSharedPreferences (this); – paviflo