Question

ok donc chaque poste que je trouve je ne peux pas obtenir cela pour travailler, j'essaie de faire de la préférence de ma liste

ParamètresBasic.xml

<ListPreference
  android:title="themes"
  android:summary="Select the option of the list"
  android:key="listPref"
  android:entries="@array/Themes"
  android:entryValues="@array/list" 
  android:defaultValue="default" />

À propos de ce que vous pouvez voir ci-dessus, c'est mon fichier ListPrreference dans mon fichier ParamètresBasic.xml. Maintenant, ce que j'ai besoin de savoir comment faire est que j'ai 2 fichiers Java, mon activité principale. et mes préférences fichier java. J'ai besoin de savoir comment je peux quand l'utilisateur clique sur l'une des entrées qu'il fait quelque chose, aime ouvrir quelque chose ou change l'interface utilisateur, juste quelque chose que je pense que je peux le prendre à partir de là. J'ai juste besoin de savoir comment et où le code irait. à l'intérieur de l'activité principale d'acité ou de préférence.

Voici mon fichier java préféré

  public class Prefs extends PreferenceActivity {

ListPreference listPref;

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settingsbasic);


       }

    protected void onResume() {
    super.onResume();

 // Registers a callback to be invoked whenever a user changes a preference.
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);

} 

protected void onPause() {
    super.onPause();

 // Unregisters the listener set in onResume().
    // It's best practice to unregister listeners when your app isn't using them to cut down on
    // unnecessary system overhead. You do this in onPause().
    getPreferenceScreen()
            .getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);

  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        // Sets refreshDisplay to true so that when the user returns to the main
        // activity, the display refreshes to reflect the new settings.
        WebViewClientDemoActivity.????? = true;
    }

 }

Tout exemple de code aiderait ou ajouter à mon code ci-dessus. J'ai juste besoin de quelqu'un qui peut éclairer ce code. J'ai essayé tant de choses différentes et aucune de cela ne fonctionne.

OK, en utilisant la méthode de l'application exemple recommandée ci-dessous, voici quelques autres code que j'ai.

 Main Activity   

  public class WebViewClientDemoActivity extends Activity {

    public static String sPref = null;

    public void onStart() {
        super.onStart();

     // Gets the user's network preference settings
        SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
     // Retrieves a string value for the preferences. The second parameter
        // is the default value to use if a preference value is not found.
        sPref = sharedPrefs.getString("listPref", "Default");

         }

Était-ce utile?

La solution

C'est la façon dont j'ai utilisé la préfecture de préfenciation:

public class EditPrefs extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.screen_prefs);
    }
}

Ensuite, Dossier In / Res / XML J'ai le fichier XML:

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">

     <ListPreference
        android:key="txtColor"
        android:title="textView Color"
        android:summary="select color for textViews"
        android:entries="@array/txtColor"
        android:entryValues="@array/txtColorValues" />
</PreferenceScreen>

et in / Res / Res / Valeurs J'ai ce fichier XML inclut des éléments et leurs valeurs:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="txtColor">
        <item>blue</item>
        <item>brown</item>
        <item>gray</item>
        <item>violet</item>
    </string-array>
    <string-array name="txtColorValues">
        <item>#ff000099</item>
        <item>#5F1E02</item>
        <item>#333333</item>
        <item>#421C52</item>
    </string-array>
</resources>

Puis j'appelle facilement cette classe d'une autre classe Android par exemple lorsque l'utilisateur clique sur un élément de menu:

startActivity(new Intent(this, EditPrefs.class));

Vous pouvez appeler les préférences sur Oncreate et OnResume comme:

@Override
protected void onResume() {  
    super.onResume();
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    String txtColor = prefs.getString("txtColor", DEFAULT COLOR); // for instanse : #ff000099 
    textView.setBackgroundColor(Color.parseColor(txtColor));
}

Autres conseils

J'ai résolu ma question de la question.

PREFS

 public static String theme = "Theme1";

    @Override
    public void onBackPressed() {
      ListPreference listPreference = (ListPreference) findPreference("listPref");
      String currValue = listPreference.getValue();
      theme = currValue;
      super.onBackPressed();

   }

Activité principale

 if (Prefs.theme.equals("Theme1"))
setContentView(R.layout.main);
    else 
       setContentView(R.layout.main2);

Préférence XML

 <ListPreference
android:title="themes"
android:summary="Select the option of the list"
android:key="listPref"
android:entries="@array/listReturnValue"
android:entryValues="@array/listDisplayWord" />

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top