2017-01-23 2 views
2

Я сохранил несколько данных, используя общие предпочтения. Я хочу прочитать несколько данных из общих предпочтений. Я пробовал, но не могу добиться успеха. Я могу читать одни данные, но не могу прочитать несколько данных. Спасибо.Как я получу несколько данных из общих предпочтений?

//Save multiple data 

private static int incrementedValue = 0; 
saveBtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

    String id = idEditText.getText().toString(); 
    String name = nameEditText.getText().toString(); 

    SharedPreferences.Editor editor = faves.edit(); 
    editor.putString("favourite" + incrementedValue, id + "::" + name + ","); 
    editor.commit(); 

    Toast toast = Toast.makeText(MainActivity.this, "saved!", Toast.LENGTH_SHORT); 
    toast.show(); 
    incrementedValue++; 
    } 
}) 

Здесь представлены данные из общего предпочтительного кода.

//Show multiple data 

showBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
      String id = faves.getString("favourite", ""); 
      String name = faves.getString("favourite",""); 

      textShow.setText(id+" "+name); 

      Toast.makeText(MainActivity.this,"Show!",Toast.LENGTH_LONG).show(); 

     } 
    }); 
+1

Всякий раз, когда вы сохраняете выбранное значение, вы устанавливаете значение с добавочным значением. Но вы получаете значение только с «любимым». –

+0

Спасибо Jaimin. Японял твою точку зрения. –

ответ

1

Вы сделали ключ в качестве "favourite" + incrementedValue и доступа к значению с ключом "favourite", которые не являются одинаковыми , и это выглядит, как вы сохранили оба значения идентификатора и имени в одну строку, которая снова неуместны, поэтому изменить код, как это,

SharedPreferences.Editor editor = faves.edit(); 
editor.putString("favourite id" + incrementedValue, id); 
editor.putString("favourite name" + incrementedValue, name); 
editor.commit(); 

и доступа к данным, как это,

SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
String id = faves.getString("favourite id"+INCREMENT_VALUE_COUNT, ""); 
String name = faves.getString("favourite name"+INCREMENT_VALUE_COUNT,""); 

Вы должны заменить INCREMENT_VALUE_COUNT с номером позиции вы хотите получить данные.

+1

Большое спасибо Soni. Он отлично работал. –

0

Вы можете добавить несколько данных в SharedPreferences

SharedPreferences.Editor editor = faves.edit(); 
editor.putString("id", id); 
editor.putString("name", name); 
editor.commit() 

Вы можете получить значение по

String id = (faves.getString("id", "0")); 
String name = (faves.getString("name", "")); 

Как Здесь вы добавляете значение разделены :: и. Вы должны получить

String favourite = faves.getString("favourite", ""); 

и расколоть любимые , и получить разделенные значения и после этого раскола по ::

 Смежные вопросы

  • Нет связанных вопросов^_^