zoukankan      html  css  js  c++  java
  • 未读信息个数等于零时不弹窗,否则弹窗

    07-18 23:11:51.863: E/AndroidRuntime(5424): FATAL EXCEPTION: main
    07-18 23:11:51.863: E/AndroidRuntime(5424): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at java.util.ArrayList.get(ArrayList.java:304)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at com.txrj.sms.activity.ShowSmsActivity.showSms(ShowSmsActivity.java:67)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at com.txrj.sms.activity.ShowSmsActivity$1.handleMessage(ShowSmsActivity.java:78)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at android.os.Handler.dispatchMessage(Handler.java:99)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at android.os.Looper.loop(Looper.java:137)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at android.app.ActivityThread.main(ActivityThread.java:4517)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at java.lang.reflect.Method.invokeNative(Native Method)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at java.lang.reflect.Method.invoke(Method.java:511)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
    07-18 23:11:51.863: E/AndroidRuntime(5424):     at dalvik.system.NativeStart.main(Native Method)

    如下所示。加上蓝色字体的代码,判断是否存在未读短信,如果无未读短信,不更新对话框中的数据。

    void showSms(int index) {
        TxrjMessage msg = list.get(index);
        mBody.setText(msg.getBody());
        mSender.setText(msg.getNumber());
        mDateTime.setText(TxrjDateUtil.getSmsTime(msg.getTime()));
        mSmsCount.setText((index+1)+"/"+list.size());
    }

    Handler mHander = new Handler(){
        public void handleMessage(android.os.Message msg) {
            switch(msg.what) {
            case TxrjConstant.WHAT_UPDATE_SMS_DIALOG:
                if(list.size()>=1) { // 这个判断是新加上去的
                    showSms(0);
                }
                break;
            }
        }
    };

    如果程序进行了如下的更改,那么就不会出现以上的异常。


    收到新短信时,且当前界面是短信列表界面

    (1) 收到的短信正在在当前会话中,那就不必再以弹窗的形式显示新短信了吧!

    (2) 收到的选项不在当前会话中,那就要以弹窗的形式显示新的短信了!

    实现方法:在ShowSmsActivity的onCreate方法中,到sms数据库表中获取未读短信数据。

    如果没有获取到数据,那就表示未读短信已经在短信列表界面中被更改为已读状态,然后就调用finish()方法结束掉本界面,否则

    如果获取到数据,就继续往下执行,将数据以弹窗形式显示出来。

    protected void onCreate(android.os.Bundle savedInstanceState) {
        Log.i("txrjsms", "ShowSmsActivity.onCreate");
        super.onCreate(savedInstanceState);
        mContext = this;
        // 如果没有未读短信,在本揭界面显示出来之前就结束掉。
        list = SmsDataManager.getUnreadMessages(mContext); // mContext必须在此之前就赋值,也可以传入this作为实参。
        if(list.size()==0){
            finish();
        }
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.sms_popup_dialog);
        mBody = (TextView) findViewById(R.id.sms_body);
        mSender = (TextView) findViewById(R.id.sms_sender);
        mDateTime = (TextView) findViewById(R.id.sms_time);
        mSmsCount = (TextView) findViewById(R.id.sms_count);
        mLayoutDelsms = (RelativeLayout) findViewById(R.id.layout_deletesms);
        findViewById(R.id.doRead).setOnClickListener(this);
        findViewById(R.id.doReply).setOnClickListener(this);
        findViewById(R.id.deleteSms).setOnClickListener(this);
        findViewById(R.id.closeWindow).setOnClickListener(this);
        mBody.setMovementMethod(ScrollingMovementMethod.getInstance());
        // mHander.postDelayed(new LoadUnreadSmsTask(), 0);
        mHander.sendEmptyMessage(TxrjConstant.WHAT_UPDATE_SMS_DIALOG);
    }

  • 相关阅读:
    ubuntu服务器全部署
    果蝇优化算法(FOA)
    小波神经网络(WNN)
    R语言预测实战(第二章--预测方法论)
    ARIMA模型--粒子群优化算法(PSO)和遗传算法(GA)
    R语言预测实战(第一章)
    卷积神经网络(CNN)
    RSS(简易信息聚合)和jieba(第三方分词组件)
    第四章--基于概率论的分类方法:朴素贝叶斯--新闻分类(三)
    第四章--基于概率论的分类方法:朴素贝叶斯--过滤垃圾邮件(二)
  • 原文地址:https://www.cnblogs.com/fengzhblog/p/3199661.html
Copyright © 2011-2022 走看看