腾讯公益赛个人冲刺博客16(2024.6.4)

今天基本写完后端代码,但是并未测试
{//事件捕获
    class MHandler extends Handler{
        @Override
        public void dispatchMessage(Message msg){
            super.dispatchMessage(msg);
            switch(msg.what){
                case MSG_OK:
                    if(msg.obj!=null){
                        String vlResult=(String)msg.obj;
                        paresData(vlResult);
                    }
                    break;
            }
        }
    }
    private void paresData(String JsonData){  //Json解析
        try{
            JSONObject obj=new JSONObject(JsonData);
            String content=obj.getString("text");//获取的机器人信息
            int code=obj.getInt("code");//服务器状态码
            updateView(code,content);
        }catch (JSONException e){
            e.printStackTrace();
            showData("主人,你的网络不好哦");
        }
    }


    private void showData(String message){
        ChatBean chatBean=new ChatBean();
        chatBean.setMessage(message);
        chatBean.setState(ChatBean.RECEIVE);//机器人发送的消息
        chatBeanList.add(chatBean);//将机器人发送的消息添加到chatBeanList集合中
        adapter.notifyDataSetChanged();
    }


    private void updateView(int code,String content){
        //code有很多形状,在此例举几种。
        switch (code){
            case 4004:
                showData("主人,今天我累了,我要休息了,明天再来找我耍吧");
                break;
            case 40005:
                showData("主人,你说的是火星语吗?");
                break;
            case 40006:
                showData("主人,我今天要去约会哦,改天再聊哦。");
                break;
            case 40007:
                showData("主人,明天再和你耍啦,我感冒了,呜呜呜。。。");
                break;
            default:
                showData(content);
                break;
        }
    }


    protected long exitTime;//记录第一次点击时的时间


    @Override
    public boolean onKeyDown(int keyCode,KeyEvent event){
        if (keyCode==KeyEvent.KEYCODE_BACK
            &&event.getAction()==KeyEvent.ACTION_DOWN){
            if ((System.currentTimeMillis()-exitTime)>2000){
                Toast.makeText(MainActivity.this,"再按一次退出聊天程序",Toast.LENGTH_SHORT).show();
                exitTime=System.currentTimeMillis();
            }else {
                MainActivity.this.finish();
                System.exit(0);
            }
            return true;
        }
        return super.onKeyDown(keyCode,event);
    }

 

posted @ 2024-06-12 08:17  记得关月亮  阅读(14)  评论(0)    收藏  举报