zoukankan      html  css  js  c++  java
  • 草稿信息增删改查处理

    得到mMessages之后,先判断有没有草稿信息,有的话,从列表中删除草稿信息,将草稿信息保存在另外一个变量中。

    @Override
    protected void onPostExecute(List<TxrjMessage> result) {
        super.onPostExecute(result);
        mMessages = result;
        for(TxrjMessage msg : mMessages) {
            if(msg.getType() == Sms.MESSAGE_TYPE_DRAFT) {
                mEditMsg.setText(msg.getBody()); // 将草稿信息内容显示在文本框中。
                draftMsg = msg; // 将草稿信息保存在另外一个变量中。
                mMessages.remove(msg); // 将草稿信息从信息列表中删除。

                break;
            }
        }
        mListAdapter = new MessageListAdapter(mContext, mMessages);
        mListView.setAdapter(mListAdapter);
        if(TxrjConstant.ACTION_SEND_MESSAGE.equals(getIntent().getAction())) {
            performSendMessage(getIntent().getStringExtra(TxrjConstant.EXTRA_MESSAGE_BODY));
        }
        mProgressDialog.dismiss();
    }
    在信息列表界面中,点击返回键时,保存(修改,删除)草稿信息。

    private void removeDraftMessage() {
        if(draftMsg == null) {
            return;
        }
        getContentResolver().delete(Sms.CONTENT_URI,
                "_id=" + draftMsg.getMessageId(), null); // 删除指定sms._id草稿信息。

        draftMsg = null;
    }

    private void updateDraftMessage() {
        String body = mEditMsg.getText().toString();
        if(body.equals(draftMsg.getBody())) {
            return;
        }
        ContentValues values = new ContentValues();
        values.put(Sms.DATE, System.currentTimeMillis());
        values.put(Sms.BODY, body);
        getContentResolver().update(Sms.CONTENT_URI, values,
                "_id=" + draftMsg.getMessageId(), null); // 更新指定sms._id的草稿信息。
    }

    private void saveDraftMessage() {
        String body = mEditMsg.getText().toString();
        ContentValues values = new ContentValues();
        values.put(Sms.TYPE, Sms.MESSAGE_TYPE_DRAFT);
        values.put(Sms.THREAD_ID, mThreadId);
        values.put(Sms.DATE, System.currentTimeMillis());
        values.put(Sms.BODY, body);
        getContentResolver().insert(Sms.CONTENT_URI, values); // 插入一个新的草稿信息。

    }

    当编辑框文本内容不为空时,更新当前草稿信息,或者插入一个新的草稿信息。

    编辑框文本内容为空时,删除当前草稿信息(如果当前会话存在草稿信息)。

    @Override
    public void onBackPressed() {
        if(!TextUtils.isEmpty(mEditMsg.getText().toString())){
            if(draftMsg != null) {
                updateDraftMessage();
            } else {
                saveDraftMessage();
            }
        } else {
            removeDraftMessage();
        }
        super.onBackPressed();
    }

    需要注意的是:会话列表中的message_count不包括草稿信息。

    如果该会话只有草稿信息,没有别的信息,那么message_count值为零。

  • 相关阅读:
    关于systemgenerator的学习方法
    关于FPGA的非HDL设计方法比较
    vivado simlation post-implementation "not found module"问题分析
    快速重启tomcat的shell脚本
    python2 和python3报错:No module named ‘MySQLdb'”
    CentOS生产环境无网络安装percona-xtrabackup2.4【RPM安装教程】
    磁盘system ID解释
    对硬盘进行扩容,LVM逻辑卷创建案例实记
    LVS的原理
    毕业1年,我是如何走向运维工程师的
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3196094.html
Copyright © 2011-2022 走看看