腾讯公益赛个人冲刺博客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); }