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

浙公网安备 33010602011771号