如何使用切换按钮更改开关条件?

时间:2018-08-20 03:05:12

标签: android realm

我有一个程序,该程序创建待办事项列表,允许用户设置应用程序的日期/时间以通知他们有关该操作的信息。有一个复选框,上面写着“通知我”,可以安排通知时间。但是,在列表的主RecyclerView中,还有一个切换开关,允许用户在保存通知后关闭/打开该通知。问题是,拨动开关似乎并未更改通知状态。

holder.notifSwitch.setChecked(journalModel.isNotify());

    if(journalModel.getJournalDateNotify().getTime() > System.currentTimeMillis())
    {
        holder.notifSwitch.setVisibility(View.VISIBLE);
    } else {
        holder.notifSwitch.setVisibility(View.INVISIBLE);
    }

     holder.notifSwitch.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           if(!journalModel.isNotify())
           {
               createJournalFunction.updateJournal(realm, journalModel.getRealmJournalNo(),true);
           } else
           {
               createJournalFunction.updateJournal(realm, journalModel.getRealmJournalNo(), false);
           }
       }
     });

这是用于更新Realm对象的代码:

public boolean updateJournal (Realm realm, final int realmJournalNo, final boolean isNotify){
    success = false;
    try{
        realm.executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                final TblJournal tblJournal = realm.where(TblJournal.class).equalTo("realmJournalNo", realmJournalNo).findFirst();
                tblJournal.setNotify(isNotify);
                success = true;
            }
        });
    }catch (RealmException e){
        Log.i("INFO","update Retail Exception: "+e.toString());
        success = false;
    }finally {
        return success;
    }

    }

3 个答案:

答案 0 :(得分:0)

根据您的代码,您点击时不会更新journalModel.isNotify= truefalsejournalModel.setIsNotify(true):/journalModel.setIsNotify(false):

答案 1 :(得分:0)

 holder.notifSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                // status="true"; //edit here
                switch_btn.setChecked(true);

            } else {
                // status="false"; //edit here
                switch_btn.setChecked(false);

            }
        }
    });

答案 2 :(得分:0)

一切都很好,您只需要修改python3 manage.py migrate方法即可。

onClick