騰訊公益賽個人衝刺部落格16(2024.6.4)

记得关月亮發表於2024-06-12
今天基本寫完後端程式碼,但是並未測試
{//事件捕獲
    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);
    }

相關文章