2016-05-09 4 views
1

это хранить данные в sharedPreferencesкак получить дату, время для календаря от sharedpreferences

  SharedPreferences prefsDate = getSharedPreferences("Date", MODE_PRIVATE); 
      SharedPreferences.Editor editor = prefsDate.edit(); 
      editor.putString("Date", textDate.getText().toString()); 
      editor.commit(); 
      SharedPreferences prefsTime = getSharedPreferences("Time", MODE_PRIVATE); 
      SharedPreferences.Editor edit = prefsTime.edit(); 
      edit.putString("Time", textTime.getText().toString()); 
      edit.commit(); 
      SharedPreferences prefs = getSharedPreferences("Event", MODE_PRIVATE); 
      SharedPreferences.Editor edt = prefs.edit(); 
      edt.putString("Event", event.getText().toString()); 
      edt.commit(); 

здесь я ставлю календарь, но как я могу получить значение для этого (заменить 0)?

   Calendar calendar = Calendar.getInstance(); 

       calendar.set(Calendar.DAY_OF_MONTH,0); 
       calendar.set(Calendar.MONTH,0); 
       calendar.set(Calendar.YEAR,0); 
       calendar.set(Calendar.HOUR_OF_DAY,0); 
       calendar.set(Calendar.MINUTE, 0); 

       Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class); 
       pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0); 
       alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); 
+0

Пожалуйста, следуйте приведенным ниже ответам @ H.almamari – Lampard

ответ

1

Во-первых, я не думаю, что вам нужны 3 отдельные общие ресурсы для хранения этих 3 значений.

Во-вторых, вы не можете сохранить значение в виде строки, а затем получить его позже как целое. Измените код на что-то вроде этого:

SharedPreferences prefsDate = getSharedPreferences("Calendar", MODE_PRIVATE); 
SharedPreferences.Editor editor = prefsDate.edit(); 
editor.putInt("Date", Integer.valueOf(textDate.getText().toString())); 
// save other values here 
editor.commit(); 

Затем их извлечения:

SharedPreferences prefsDate = getSharedPreferences("Calendar", MODE_PRIVATE); 
int date = prefsDate.getInt("Date", 0); 

В качестве альтернативы, вы можете использовать мои SharedPreferences library, которые могли бы ослабить вещи для вас.

+0

как получить значение от sharedPrefrences? –

1

Вместо разделения дату, месяц и год вы можете сохранить его в одну строку, как это:

Calendar cal = Calendar.getInstance(); 
     int year = cal.get(Calendar.YEAR); // get the current year 
     int month = cal.get(Calendar.MONTH); // month... 
     int day = cal.get(Calendar.DAY_OF_MONTH); // current day in the month 
     String myDate=year + "/" + month + "/" + day; 

Теперь вы можете сохранить всю строку MyDate в sharedPrefrence и использовать его в своем приложении:

чтобы сохранить Струнный запись:

SharedPreferences prefsDate = getSharedPreferences("MyCalendar", MODE_PRIVATE); 
SharedPreferences.Editor editor = prefsDate.edit(); 
editor.putString("Date",myDate); 
editor.commit(); 

Теперь, чтобы извлечь строку с датой, вы должны написать:

SharedPreferences prefsDate = getSharedPreferences("MyCalendar", MODE_PRIVATE); 
private String dateFromSharedPrefences=prefsDate.getString("Date","");