How do I pass the contents of a String (which I took from the View.toString ()) to a View?

2

I used the "View.toString" to grab the contents of a string and save it to SharedPreferences, since I need to save the view inside and the SharedPreferences only accepts primitive type, but now I need to set this String to a view that I believe Is it possible to do that? I know there must be some specific method but I can not figure out which one. Thank you in advance!

    
asked by anonymous 21.09.2015 / 17:29

1 answer

1

Here is an example of how to save the List in SharedPreferences:

// Constante com o nome do objeto q vamos salvar
    private static  final String LISTA = "LISTA";
    // Constante com o nome da propriedade
    private static  final String ITENS = "ITENS";
    private static  final String SEPARADOR = ";"; // este deve ter um coringa (caracter que não exista na lista!)

    /**
     * Transforma a lista em uma String e salva.
     * @param selecoes
     * @param context
     */
    public static void saveList(final List<String> selecoes, final Context context)
    {

        final SharedPreferences prefs = context.getSharedPreferences(LISTA, Context.MODE_PRIVATE);
        final StringBuffer buffer = new StringBuffer();
        for(final String s : selecoes)
        {
            buffer.append(s);// adicionamos o item
            buffer.append(SEPARADOR);// adicionamos um separador

        }
        final SharedPreferences.Editor editor = prefs.edit();

        editor.putString(ITENS, buffer.toString());
        editor.commit(); // commitamos os dados ...
    }


    public static List<String> loadList(final Context context)
    {

        final SharedPreferences prefs = context.getSharedPreferences(LISTA, Context.MODE_PRIVATE);

        final String valor = prefs.getString(ITENS, null);
       if(null == valor){ // não armazenamos nada ainda...
           return null;
       }

        final String[] lista = valor.split(SEPARADOR); /// quebramos a string em cada separador encontrado


        final List<String> retorno = new ArrayList<String>(0);
        for(final String s  : lista)
        {
            if(!"".equals(s))
            {
                retorno.add(s); // se não for vazia, adiciona na lista
            }
        }
        return retorno;
    }

A tip:

I suggest validating if a country is already listed before adding

    
21.09.2015 / 19:27