每天制作一个按钮切换一次

时间:2017-08-04 19:13:47

标签: java android realm

我试图在我的Android应用程序中实现以下几点:

  1. 如果用户打开应用程序,那么在任何特定日期,他们会点击一个按钮,这将增加数字+1。然后还可以再次单击该按钮,这将使数字回到原来的数字-1。
  2. 他们每天只能这样做一次,所以最多这个数字将是以前的+1。但是用户可以点击它并根据需要多次点击它,它仍然只会为该数字添加最大+1。
  3. 我目前有一些实现:在我的数据库中,我有一个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;取消点击"它可以撤消点击和增量,然后根据需要重新点击它。

    任何帮助都将不胜感激,我可以提供任何其他可能相关的代码。

0 个答案:

没有答案