m0_74474210 2024-05-16 16:37 采纳率: 93.8%
浏览 3
已结题

Android数据库的问题


  @SuppressLint("HandlerLeak")
    private Handler mHandler = new Handler(){
        @SuppressLint("MissingPermission")
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);

            switch(msg.what){

 case RECEIVE_SUCCESS:  //接收成功
                    String receiveResult = (String) msg.obj;
                    weight.setText(receiveResult.substring(receiveResult.indexOf(":")+1,receiveResult.lastIndexOf("#"))+"g");
                    if (receiveResult.contains(",time1_on")){
                        s1.setChecked(true);
                    }
                    if (receiveResult.contains(",time1_off")){
                        s1.setChecked(false);
                    }
                    if (receiveResult.contains(",time2_on")){
                        s2.setChecked(true);
                    }
                    if (receiveResult.contains(",time2_off")){
                        s2.setChecked(false);
                    }
                    if (receiveResult.contains(",time3_on")){
                        s3.setChecked(true);
                    }
                    if (receiveResult.contains(",time3_off")){
                        s3.setChecked(false);
                    }
                    if (receiveResult.contains(",time4_on"))
                        s4.setChecked(true);
                    if (receiveResult.contains(",time4_off"))
                        s4.setChecked(false);
                    if (receiveResult.contains("time5_on"))
                        s5.setChecked(true);
                    if (receiveResult.contains("time5_off"))
                        s5.setChecked(false);
                    if  (receiveResult.contains(",start")){
                        Calendar calendar=Calendar.getInstance();
                        Date d1=calendar.getTime();
                        calendar.add(Calendar.MINUTE,30);
                        Date d2=calendar.getTime();
                        SQLiteDatabase db=dataBase.getWritableDatabase();
                        ContentValues contentValues=new ContentValues();
                        contentValues.put(DataBase.COLUMN_ST,String.valueOf(d1));
                        db.insert(DataBase.TABLE2,null,contentValues);
                        TimerTask timerTask=new TimerTask() {
                            @Override
                            public void run() {
                                contentValues.put(DataBase.COLUMN_ET,String.valueOf(d2));
                                contentValues.put(DataBase.COLUMN_EW,Integer.valueOf(weight.getText().toString()));
                            }
                        };
                        Timer timer=new Timer(true);
                        timer.schedule(timerTask,d2);
                        if (String.valueOf(weight.getText())=="0"){
                            timer.cancel();
                            Date d3=calendar.getTime();
                            contentValues.put(DataBase.COLUMN_ET,String.valueOf(d3));
                            contentValues.put(DataBase.COLUMN_EW,0);
                            db.insert(DataBase.TABLE2,null,contentValues);
                        }
                        if(receiveResult.contains(",stop")){
                            contentValues.put(DataBase.COLUMN_SW,Integer.valueOf(weight.getText().toString()));
                            db.insert(DataBase.TABLE2,null,contentValues);
                        }
                    }
                    break;
            }

当handle接受到信号时进行数据库表的插入,需要将这四个数据插入同一行,接收到这start将开始时间插进去,接收到stop将weight里的数据插入同一行的sw,然后在设置一个计时器,当在20分钟内weight=0了就在et插入当前时间和0分别到et和ew中,否则插入20分钟后的时候,并且插入此时的weight的数据到ew
这四个数据插入到同一行中,作为一条数据
如果需要加ID,除了他自增,还可不可以实现如果删除某一行的数据,ID从下一行自动接着上一行的id编号
删除某一行的某一个数据,是使用修改语句吗?
查询数据库的时候将数据显示在listview上,然后开始没有id,如果现在也不需要显示ID数据,不用修改适配器吧?

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-16 16:37
    关注

    避免汉亮,使用otto、RxJava等替换Handler处理UI更新。

    以上回复有部分引自免费微信小程序:皆我百晓生。 如问题尚未解决,还请稍待,如有疑问请回复进一步沟通。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 求一份STM32F10X的I2S外设库
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?