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值为零。

  • 相关阅读:
    Nginx虚拟主机配置实例(Nginx VirtualHost Example)
    考研机试 33.密码翻译
    考研机试 26.10进制 VS 2进制
    考研机试 25.剩下的树
    input默认值设置
    http 304优化,了解客户端缓存
    (转)8款在线CSS优化工具/组织和压缩CSS
    照片从模糊到清晰的渐变加载显示方法
    JS压缩工具Closure Compiler 和 YUICompressor的对比
    【转】高性能web开发 如何加载JS,JS应该放在什么位置?
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3196094.html
Copyright © 2011-2022 走看看