0
我已经创建了一个活动,计算您设置的日期和今天之间的天数,并且每次用户登录到应用程序时都尝试更新计数器,但它不会“ t似乎工作。如何在开始活动时更新日期计数器
下面是我的脚本,反映如何,我想做到这一点:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.appactivity);
DateDisplay=(TextView)findViewById(R.id.data);
ContoGiorni=(TextView)findViewById(R.id.textViewConto);
update();
updateConto();
}
protected void update(){
SharedPreferences prefs=getSharedPreferences(DATA_PREFERENCIES, Context.MODE_PRIVATE);
String giorno=prefs.getString(GIORNO,"00");
String mese=prefs.getString(MESE,"00");
String anno=prefs.getString(ANNO,"0000");
DateDisplay.setText(
new StringBuilder()
.append(anno).append("-")
.append(mese).append("-")
.append(giorno)
);
}
protected void updateConto(){
SharedPreferences prefs=getSharedPreferences(DATA_PREFERENCIES, Context.MODE_PRIVATE);
Calendar calendar=new GregorianCalendar();
calendar=Calendar.getInstance();
long millisecondsToday=calendar.getTimeInMillis();
String millisecond=prefs.getString(MILLISECOND,"0");
long millisecondLong=Long.parseLong(millisecond);
long diff = millisecondsToday - millisecondLong;
long sec = diff/1000 ;
long minutes = sec/60 ;
long hr = minutes/60 ;
long days = hr/24 ;
SharedPreferences.Editor editor=prefs.edit();
editor.putString(CONTO,String.valueOf(days));
String conto=prefs.getString(CONTO,"0");
ContoGiorni.setText(
new StringBuilder().append(conto).append(" giorni con te"));
}
public void setData (View v){
showDialog(0);
}
protected DatePickerDialog.OnDateSetListener dateSetListener=new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
SharedPreferences prefs=getSharedPreferences(DATA_PREFERENCIES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor=prefs.edit();
annoMio=year;
meseMio=month;
giornoMio=day;
editor.putString(GIORNO, String.valueOf(annoMio));
editor.putString(MESE,String.valueOf(meseMio+1));
editor.putString(ANNO,String.valueOf(giornoMio));
Calendar calOne=new GregorianCalendar();
Calendar calTwo=new GregorianCalendar();
calOne = Calendar.getInstance();
calTwo = Calendar.getInstance();
calTwo.set(annoMio, meseMio, giornoMio);
long milliseconds1 = calOne.getTimeInMillis();
long milliseconds2 = calTwo.getTimeInMillis();
editor.putString(MILLISECOND,String.valueOf(milliseconds2));
long diff = milliseconds1 - milliseconds2;
long sec = diff/1000 ;
long minutes = sec/60 ;
long hr = minutes/60 ;
long days = hr/24 ;
editor.putString(CONTO,String.valueOf(days));
editor.apply();
update();
updateConto();
}
};
我要去哪里错了,我怎么能做到这一点?