SharedPreferences, вызванная строка не распознаваема для списка просмотра ifelse - PullRequest
0 голосов
/ 30 ноября 2011

Я сделал несколько кодов в отношении SharedPreferences, с расширениями сохранения и загрузки данных с помощью 2 кнопок, соответственно сохранения и загрузки.Обе функции работают хорошо, но когда я убиваю приложение и возвращаюсь назад, я нажимаю кнопку загрузки, она загружает мой ранее сохраненный массив и загружает этот массив в просмотр списка, но когда я нажимаю на просмотр списка, кажется, что строкив массиве, кажется, не в состоянии выполнить мою деятельность.

Кто-нибудь встречался по этой проблеме или подобное?

    final Button a = (Button) findViewById(R.id.save); 
    a.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) { 
            int mode= MODE_PRIVATE;

            // get the sharedPreference of your context.

            SharedPreferences  mySharedPreferences ; mySharedPreferences=getSharedPreferences("shared",MODE_PRIVATE);

            // retrieve an editor to modify the shared preferences

            SharedPreferences.Editor editor= mySharedPreferences.edit();

            /* now store your primitive type values. In this case it is true, 1f and Hello! World  */

            for (String s : global.ItemArray){
            editor.putString("share", s);
            }
            //save the changes that you made

            editor.commit();
            Toast.makeText(getBaseContext(), "Favourites saved", Toast.LENGTH_SHORT)
            .show();

        }
    });
    final Button b = (Button) findViewById(R.id.load); 
    b.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) { 
            global.ItemArray.clear();

            int mode = Activity.MODE_PRIVATE;

            SharedPreferences  mySharedPreferences ; 
            mySharedPreferences=getSharedPreferences("shared", MODE_PRIVATE);

            // Retrieve the saved values.

            String mSstring = null;

            mSstring= mySharedPreferences.getString("share", mSstring);
            /*if (mSstring == "1"){
                global.ItemArray.add("Introduction To BCLS");
            }*/
            global.ItemArray.add(mSstring);
            Toast.makeText(getBaseContext(), "Favourites loaded", Toast.LENGTH_SHORT)
            .show();

            lv1.setAdapter(arrad);
        }





        }
    );

1 Ответ

0 голосов
/ 05 апреля 2012

Это потому, что вам нужно уникальное имя для каждой строки, которой вы делитесь

попробуйте это при добавлении

    for(int i =0; i < global.ItemArray.length; i ++){
        editor.putString("share" + i, global.ItemArray.get(i));
    }

и это при удалении

    for(int i =0; i < global.ItemArray.length; i ++){
        global.ItemArray.add(i, editor.getString("share" + i);
    }

этоне будьте синтаксически правильными, поэтому относитесь к ним как к псевдо-коду, пожалуйста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...