腾讯公益赛个人冲刺博客15(2024.6.3)
今天开始写后端的主类界面,去图灵机器人买了密钥和接口,今天只写了一部分,还看不出效果
package com.java.ffshixun; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private ListView listView; private ChatAdapter adapter; private List<ChatBean> chatBeanList;//存放所有聊天数据的集合 private EditText et_send_msg; private Button btn_send; //接口地址 private static final String WEB_SITE="http://www.tuling123.com/openapi/api"; //唯一key,该key的值是从官网注册账号获取的,注册地址为:http://www.tuling123.com/ private static final String KEY="b7f13cd027d5469fbd586940c0adbe83"; private String sendMsg;//发送的信息 private String welcome[];//存储欢迎信息 private MHandler mHandler; public static final int MSG_OK=1;//获取数据 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chatBeanList=new ArrayList<ChatBean>(); mHandler=new MHandler(); //获取内置的欢迎信息 welcome=getResources().getStringArray(R.array.welcome); initView();//初始化界面控件 } public void initView(){ listView=(ListView)findViewById(R.id.list); et_send_msg=(EditText)findViewById(R.id.et_send_msg); btn_send=(Button)findViewById(R.id.btn_send); adapter=new ChatAdapter(chatBeanList,this); listView.setAdapter(adapter); btn_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sendData();//点击发送按钮,发送信息 } }); et_send_msg.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent keyEvent) { if (keyCode==KeyEvent.KEYCODE_ENTER && keyEvent.getAction()== KeyEvent.ACTION_DOWN){ sendData();//点击Enter键也可以发送信息 } return false; } }); int position=(int)(Math.random()*welcome.length-1);//获取一个随机数 showData(welcome[position]);//用随机数获取机器人的首次聊天信息 } private void sendData(){ sendMsg=et_send_msg.getText().toString();//获取你输入的信息 if(TextUtils.isEmpty(sendMsg)){//判断是否为空 Toast.makeText(this,"您还未输入任何信息哦",Toast.LENGTH_LONG).show(); return; } et_send_msg.setText(""); //替换空格和换行 sendMsg=sendMsg.replaceAll(" ","").replaceAll("\n","").trim(); ChatBean chatBean=new ChatBean(); chatBean.setMessage(sendMsg); chatBean.setState(chatBean.SEND);//SEND表示自己发送的信息 chatBeanList.add(chatBean);//将发送的信息添加到chatBeanList集合中 adapter.notifyDataSetChanged();//更新ListView列表 getDataFromServer();//从服务器获取机器人发送的信息 } private void getDataFromServer(){ OkHttpClient okHttpClient=new OkHttpClient(); Request request =new Request.Builder().url(WEB_SITE+"?key="+KEY+"&info="+sendMsg).build(); Call call=okHttpClient.newCall(request); //开启异步线程访问网络 call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String res=response.body().string(); Message msg=new Message(); msg.what=MSG_OK; msg.obj=res; mHandler.sendMessage(msg); } }); } }
分类:
软件工程日报(2024年春)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)