我试图在我的Android应用程序中实现以下几点:
我目前有一些实现:在我的数据库中,我有一个updateTime对象。然后我使用一个函数来检查它是否在同一天:
private boolean isSameDay(int position){
Date currentDate = new Date();
Date updatedDate = mDataSource.get(position).getUpdated();
// Strip out the time part of each date.
int MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
long julianDayNumber1 = currentDate.getTime() / MILLIS_PER_DAY;
long julianDayNumber2 = updatedDate.getTime() / MILLIS_PER_DAY;
// If they now are equal then it is the same day.
return julianDayNumber1 == julianDayNumber2;
}
检查是否在同一天,以便用户无法再次点击它。现在我难以弄清楚如何使其可以切换,以便用户可以再次点击它,但它只会减少它,然后用户可以再次点击它,它会增加它,依此类推,直到第二天。
这是我的OnClickListener
按钮,不知道如何实现切换功能。
habitChecked.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.i("In on Click:", ""+position+"");
updateHabit(position);
}
});
这是我的updateHabit方法:
private void updateHabit(int position){
Realm.init(mContext);
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
if(!isSameDay(position)){ //If the habit hasn't already been updated today
mDataSource.get(position).setTracker(mDataSource.get(position).getTracker()+1);
mDataSource.get(position).setUpdated(new Date()); //update updated date
}
realm.commitTransaction();
}
总结一下:目前的功能是用户每天只能点击一次按钮,加上+1,但不能点击"#34;取消点击"它可以撤消点击和增量,然后根据需要重新点击它。
任何帮助都将不胜感激,我可以提供任何其他可能相关的代码。