LinkedHashSet hace para no principal de inserción?

AndroidAnton :

Estoy construyendo una aplicación para Android, donde puedo mostrar citas de personajes famosos. Tengo una pantalla de inicio y otras 2 pantallas, en los que estoy mostrando todas las citas y la otra donde exhibo citas favoritas.

Por lo tanto, cuando pulso el botón en la pantalla de AllQuotesActivity la cita y el autor se guardarán en un LinkedHashSet, que se guardará en SharedPreferences, por lo que mi FavouriteQuotes Actividad puede obtener los datos similares. Puedo obtener los datos, pero los datos se mezcla, a pesar de que otros enlaces dicen que LinkedHashSet mantiene el orden de inserción. Tal vez hice algo mal. Estos son los fragmentos de código importantes:

AllQuotesActivity.java:

SharedPreferences sharedPref;
Set<String> set = new LinkedHashSet();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.all_quotes);

    Resources res = getResources();
    Context context = getApplicationContext();
    this.sharedPref = context.getSharedPreferences(
            "MyPref", Context.MODE_PRIVATE);
    final String[] quotesAndAuthors = res.getStringArray(R.array.quotes);

    button3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            set.add(quotesAndAuthors[counter]);
            set.add(quotesAndAuthors[counter + 1]);
        }
    });

}

@Override
public void onPause() {
    super.onPause();
    Log.d("RichQuotes", "Its paused mkay");

    Editor editor = sharedPref.edit();

    editor.putStringSet("quotesAndAuthors", this.set);
    editor.commit();
}

}

FavouriteQuotesActivity.java:

SharedPreferences sharedPref;
Set<String> set = new LinkedHashSet();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.favourite_quotes);

    Resources res = getResources();
    Context context = getApplicationContext();
    this.sharedPref = context.getSharedPreferences(
            "MyPref", Context.MODE_PRIVATE);

    set = sharedPref.getStringSet("quotesAndAuthors", null);

    for (Iterator<String> it = set.iterator(); it.hasNext(); ) {
        String s = it.next();
        Log.v("test", s);
    }

Quité el código innecesario.

En el FavouriteQuotesActivity.java estoy tala del juego para comprobar sus valores. El diario de salidas y las salidas en la pantalla son los mismos, tanto desordenada de la misma manera.

Albahaca Bourque:

conjunto set = nuevo LinkedHashSet ();

En esta línea, se instancia un nuevo vacío LinkedHashSetobjeto. A continuación, este objeto se le asigna a la variable llamada set.

SET = sharedPref.getStringSet ( "quotesAndAuthors", null);

En esta línea, se reasignen la setvariable para el punto a algún otro objeto, algunos Setobjeto devuelto por la llamada a getStringSet. No sabemos la clase concreta de este segundo objeto que implementa la Setinterfaz. Usted puede pedir llamando getClass.

Su primer conjunto, el vacío LinkedHashSet, no se utilizó. Sin otras referencias apuntando hacia él, ese conjunto se convirtió en un candidato para la recolección de basura eventual.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=362901&siteId=1
Recomendado
Clasificación