了了机器人开发日志
来源:互联网 发布:淘宝如何查看店铺粉丝 编辑:程序博客网 时间:2024/05/02 02:08
<3.23>
1.第三方的API的使用,机器人使用的是图灵提供的KEY
2.ListView的多种item的布局
2.1 定义一个URL,提供使用的Gson包
2.2 doget方法返回结果
2.3 URL以及编码的转换 如下
public class HttpUtils {/** * * @author zhaogy * @project 定义一个 string url 定义个doget 方法 * * * */private static final String URl = "http://www.tuling123.com/openapi/api";// private static final String API_KEY ="8381bb52462ef312ebe4cb54b7ec8a6e";public static ChatMessage sendChatMessage(String msg) {ChatMessage chatMessage = new ChatMessage();String jsonRes = doGet(msg); // 用户得到返回结果 ,GSONGson gson = new Gson();Result result = null; // 有真有假 try catchtry {result = gson.fromJson(jsonRes, Result.class); // 把返回的字符串跟信息放到result中chatMessage.setMsg(result.getText()); // 注意IDE引入包的格式 } catch (Exception e) {// TODO: handle exceptionchatMessage.setMsg("服务器繁忙");} chatMessage.setDate(new Date()); // 设置信息跟提示 chatMessage.setType(Type.INCOMING);return chatMessage;}
<3.24>
1.编写一个工具类实现消息的发送跟接收
2.搭建环境测试类
3.bean的编写 返回chatmessage ,使用 doget 使用 Gson.jar
public class ChatMessageAdapter extends BaseAdapter {private LayoutInflater mInflater; // 给数据传到ADPTERprivate List<ChatMessage> mDatas;public ChatMessageAdapter(Context context, List<ChatMessage> mDatas) {mInflater = LayoutInflater.from(context);this.mDatas = mDatas;}@Overridepublic int getCount() {return mDatas.size();}@Overridepublic Object getItem(int position) {return mDatas.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic int getItemViewType(int position) { // 获取到的条目数据进行分配ChatMessage chatMessage = mDatas.get(position);if (chatMessage.getType() == com.example.bean.ChatMessage.Type.INCOMING) {return 0;} else {return 1;}}@Overridepublic int getViewTypeCount() {return 2;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) { // 通过convview// holder// 来实现语句对界面的实现ChatMessage chatMessage = mDatas.get(position);ViewHolder viewHolder = null;if (convertView == null) {if (getItemViewType(position) == 0) {convertView = mInflater.inflate(R.layout.item_from_msg, parent,false);viewHolder = new ViewHolder();viewHolder.mDate = (TextView) convertView.findViewById(R.id.id_form_msg_date);viewHolder.mMsgs = (TextView) convertView.findViewById(R.id.id_from_msgs_msg_info);} else {convertView = mInflater.inflate(R.layout.item_to_msg, parent,false);viewHolder = new ViewHolder();viewHolder.mDate = (TextView) convertView.findViewById(R.id.id_to_msg_date);viewHolder.mMsgs = (TextView) convertView.findViewById(R.id.id_to_msg_msg_info);}convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}// 设置数据SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 用来设置时间格式viewHolder.mDate.setText(sFormat.format(chatMessage.getDate())); // 日期viewHolder.mMsgs.setText(chatMessage.getMsg()); // 获取信息return convertView;}private final class ViewHolder {TextView mDate;TextView mMsgs;}}
<3.25>
1.布局的编写
2.Adapter的使用 1.list 2.Adpter 3.数据源
3.通过itemtype的不同来设置布局
4.考虑 子线程跟异步加载 刷新UI
public class MainActivity extends Activity {private ListView mMsgs;private ChatMessageAdapter mAdapter;private List<ChatMessage> mDatas;private EditText mInputMsgs;private Button mSendmsgs;private Handler mHandler = new Handler(){public void handleMessage(android.os.Message msg){// 等待接收,子线程完成数据的返回ChatMessage fromMessge = (ChatMessage) msg.obj;mDatas.add(fromMessge);mAdapter.notifyDataSetChanged();mMsgs.setSelection(mDatas.size()-1);};};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);intview();intData();intlistener();}private void intlistener() {mSendmsgs.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubfinal String toMsgs = mInputMsgs.getText().toString();if (TextUtils.isEmpty(toMsgs)) {Toast.makeText(MainActivity.this, "发送信息不能为空",Toast.LENGTH_SHORT).show();return;}ChatMessage toMessage = new ChatMessage();toMessage.setDate(new Date());toMessage.setMsg(toMsgs);toMessage.setType(Type.OUTCOMING);mDatas.add(toMessage);mAdapter.notifyDataSetChanged(); // 通知更新mInputMsgs.setText("");// 网络操作不能在主线程 使用子线程进行信息的发送跟接收// 子线程不能更新主线的任务 所以使用 异步任务或handlernew Thread() {public void run() {ChatMessage fromMessage = HttpUtils.sendChatMessage(toMsgs);Message m = Message.obtain();m.obj = fromMessage;mHandler.sendMessage(m);};// ChatMessage fromMessage =// HttpUtils.sendChatMessage(toMsgs);}.start();// ChatMessage fromMessage = HttpUtils.sendChatMessage(toMsgs);}});}private void intData() {mDatas = new ArrayList<ChatMessage>();mDatas.add(new ChatMessage("您好,我是中国信息导航网的小二了了,我们的网址是(http://www.37698.cn)为您服务", Type.INCOMING, new Date()));// mDatas.add(new ChatMessage("你好", Type.OUTCOMING, new Date()));mAdapter = new ChatMessageAdapter(this, mDatas);mMsgs.setAdapter(mAdapter);}private void intview() { // 初始化// TODO Auto-generated method stubmMsgs = (ListView) findViewById(R.id.id_listview_msgs);mInputMsgs = (EditText) findViewById(R.id.id_input_msg);mSendmsgs = (Button) findViewById(R.id.id_send_msg);}}
<3.26>
1.上传到安卓市场 作为离职时的礼物
2.感谢开源的世界 感谢鸿洋大神
0 0
- 了了机器人开发日志
- 使用灵云进行交互型机器人开发日志
- 机器人学习日志1
- 机器人学习日志2
- 报道了了
- 开始写博客了了了了
- 自主移动机器人动作设计--目标跟踪及移动轨迹设计(开发日志一)
- 因 IDC 掉电,某银行业务挂掉了了了了了了了了了了
- MSN机器人开发
- 机器人服务开发告一段落
- 机器人开发平台
- 机器人控制器开发小结
- 快速开发聊天机器人
- 机器人软件开发平台
- 机器人开发仿真软件
- 机器人开发--购买材料
- 机器人开发--服务准备
- 机器人软件平台开发
- Java ClassLoader 原理详细分析
- HTML DIV CSS 笔记汇总
- fork循环
- Final and Static
- spring InitializingBean接口
- 了了机器人开发日志
- DPM(Deformable Parts Model) 伪代码
- ios网络开发篇 -数据安全
- HTTPS协议加密解密流程图解
- opencv结构解析
- QT模态对话框及非模态对话框学习
- html5图片预览
- 解析String类型的数据的方法
- Composite设置背景透明(以避免设置子控件背景代码):