0
实现一个简单的按钮,它改变信息,但我需要的信息只改变3次,我需要消失该按钮 当超过三次点击但我不知道该怎么做,以及如何消失3个月如何允许点击一个按钮“n”次然后消失一个月
实现一个简单的按钮,它改变信息,但我需要的信息只改变3次,我需要消失该按钮 当超过三次点击但我不知道该怎么做,以及如何消失3个月如何允许点击一个按钮“n”次然后消失一个月
您可以使用计数器和日期变量来存储信息。将它们保存在共享首选项中并随时获取它们。
final SharedPreferences prefs = getSharedPreferences("MySharedPrefName", MODE_PRIVATE);
final Button button = findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int counter = prefs.getInt("counter", 0); //0 is the default value.
counter++;
editor.putInt("counter", counter);
if(counter == 3){
button.setVisibility(View.GONE);
Date myDate = ;
String format = "yyyy-MM-dd";
String prefData = SimpleDateFormat(format).format(myDate);
prefs.putString("date", prefDate);
}
}
});
之后,您可以从共享首选项中获取日期,并检查是否已经过了3个月以修改按钮的可见性。
要检查3个月alredy通过使用这种方法
private boolean havePassedThreeMonths(){
//GET CURRENT DATE
Calendar c = Calendar.getInstance();
Date currentDate = c.getTime();
//GET DATE FROM PREFERENCES
prefDate = prefs.getString("Date", "");
String format = "yyyy-MM-dd";
Date date = new SimpleDateFormat(format).parse(prefDate);
//Compare the two dates
return monthsBetweenDates(date, currentDate) > 3;
}
这里monthsBetweenDates方法:
public int monthsBetweenDates(Date startDate, Date endDate){
Calendar start = Calendar.getInstance();
start.setTime(startDate);
Calendar end = Calendar.getInstance();
end.setTime(endDate);
int monthsBetween = 0;
int dateDiff = end.get(Calendar.DAY_OF_MONTH)-start.get(Calendar.DAY_OF_MONTH);
if(dateDiff<0) {
int borrrow = end.getActualMaximum(Calendar.DAY_OF_MONTH);
dateDiff = (end.get(Calendar.DAY_OF_MONTH)+borrrow)-start.get(Calendar.DAY_OF_MONTH);
monthsBetween--;
if(dateDiff>0) {
monthsBetween++;
}
}
else {
monthsBetween++;
}
monthsBetween += end.get(Calendar.MONTH)-start.get(Calendar.MONTH);
monthsBetween += (end.get(Calendar.YEAR)-start.get(Calendar.YEAR))*12;
return monthsBetween;
}
希望它可以帮助
我怎么能检查3个月的时候已经通过? @ fn5341 –
@felipecrespo我更新了答案 – fn5341
我这样做,请检查日期'long fechaFuturo = new Date()。getTime()+ TimeUnit.MILLISECONDS.convert(60,TimeUnit.DAYS); putLong(“fechaFutura”,fechaFuturo);如果(preferences.getLong(“fechaFutura”,fechaFuturo)= new Date()。getTime()){ mCambiarFotoPErfil.setVisibility(View.VISIBLE); } ' –