智慧機器人的快速實現
藉助圖靈機器人提供的API,可讓你的APP變得更聰明,更智慧
1.ChatMessage
package com.example.android_robot_01.bean;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ChatMessage
{
/**
* 訊息型別
*/
private Type type ;
/**
* 訊息內容
*/
private String msg;
/**
* 日期
*/
private Date date;
/**
* 日期的字串格式
*/
private String dateStr;
/**
* 傳送人
*/
private String name;
public enum Type
{
INPUT, OUTPUT
}
public ChatMessage()
{
}
public ChatMessage(Type type, String msg)
{
super();
this.type = type;
this.msg = msg;
setDate(new Date());
}
public String getDateStr()
{
return dateStr;
}
public Date getDate()
{
return date;
}
public void setDate(Date date)
{
this.date = date;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.dateStr = df.format(date);
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Type getType()
{
return type;
}
public void setType(Type type)
{
this.type = type;
}
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
}
2.CommonException
package com.example.android_robot_01.bean;
public class CommonException extends RuntimeException
{
public CommonException()
{
super();
// TODO Auto-generated constructor stub
}
public CommonException(String detailMessage, Throwable throwable)
{
super(detailMessage, throwable);
// TODO Auto-generated constructor stub
}
public CommonException(String detailMessage)
{
super(detailMessage);
// TODO Auto-generated constructor stub
}
public CommonException(Throwable throwable)
{
super(throwable);
// TODO Auto-generated constructor stub
}
}
3.ChatMessageAdapter
package com.example.android_robot_01;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.android_robot_01.bean.ChatMessage;
import com.example.android_robot_01.bean.ChatMessage.Type;
public class ChatMessageAdapter extends BaseAdapter
{
private LayoutInflater mInflater;
private List<ChatMessage> mDatas;
public ChatMessageAdapter(Context context, List<ChatMessage> datas)
{
mInflater = LayoutInflater.from(context);
mDatas = datas;
}
@Override
public int getCount()
{
return mDatas.size();
}
@Override
public Object getItem(int position)
{
return mDatas.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
/**
* 接受到訊息為1,傳送訊息為0
*/
@Override
public int getItemViewType(int position)
{
ChatMessage msg = mDatas.get(position);
return msg.getType() == Type.INPUT ? 1 : 0;
}
@Override
public int getViewTypeCount()
{
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ChatMessage chatMessage = mDatas.get(position);
ViewHolder viewHolder = null;
if (convertView == null)
{
viewHolder = new ViewHolder();
if (chatMessage.getType() == Type.INPUT)
{
convertView = mInflater.inflate(R.layout.main_chat_from_msg,
parent, false);
viewHolder.createDate = (TextView) convertView
.findViewById(R.id.chat_from_createDate);
viewHolder.content = (TextView) convertView
.findViewById(R.id.chat_from_content);
convertView.setTag(viewHolder);
} else
{
convertView = mInflater.inflate(R.layout.main_chat_send_msg,
null);
viewHolder.createDate = (TextView) convertView
.findViewById(R.id.chat_send_createDate);
viewHolder.content = (TextView) convertView
.findViewById(R.id.chat_send_content);
convertView.setTag(viewHolder);
}
} else
{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.content.setText(chatMessage.getMsg());
viewHolder.createDate.setText(chatMessage.getDateStr());
return convertView;
}
private class ViewHolder
{
public TextView createDate;
public TextView name;
public TextView content;
}
}
4.MainActivity
package com.example.android_robot_01;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import com.example.android_robot_01.bean.ChatMessage;
import com.example.android_robot_01.bean.ChatMessage.Type;
import com.zhy.utils.HttpUtils;
public class MainActivity extends Activity
{
/**
* 展示訊息的listview
*/
private ListView mChatView;
/**
* 文字域
*/
private EditText mMsg;
/**
* 儲存聊天訊息
*/
private List<ChatMessage> mDatas = new ArrayList<ChatMessage>();
/**
* 介面卡
*/
private ChatMessageAdapter mAdapter;
private Handler mHandler = new Handler()
{
public void handleMessage(android.os.Message msg)
{
ChatMessage from = (ChatMessage) msg.obj;
mDatas.add(from);
mAdapter.notifyDataSetChanged();
mChatView.setSelection(mDatas.size() - 1);
};
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_chatting);
initView();
mAdapter = new ChatMessageAdapter(this, mDatas);
mChatView.setAdapter(mAdapter);
}
private void initView()
{
mChatView = (ListView) findViewById(R.id.id_chat_listView);
mMsg = (EditText) findViewById(R.id.id_chat_msg);
mDatas.add(new ChatMessage(Type.INPUT, "我是小貅貅,很高興為您服務"));
}
public void sendMessage(View view)
{
final String msg = mMsg.getText().toString();
if (TextUtils.isEmpty(msg))
{
Toast.makeText(this, "您還沒有填寫資訊呢...", Toast.LENGTH_SHORT).show();
return;
}
ChatMessage to = new ChatMessage(Type.OUTPUT, msg);
to.setDate(new Date());
mDatas.add(to);
mAdapter.notifyDataSetChanged();
mChatView.setSelection(mDatas.size() - 1);
mMsg.setText("");
// 關閉軟鍵盤
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// 得到InputMethodManager的例項
if (imm.isActive())
{
// 如果開啟
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT,
InputMethodManager.HIDE_NOT_ALWAYS);
// 關閉軟鍵盤,開啟方法相同,這個方法是切換開啟與關閉狀態的
}
new Thread()
{
public void run()
{
ChatMessage from = null;
try
{
from = HttpUtils.sendMsg(msg);
} catch (Exception e)
{
from = new ChatMessage(Type.INPUT, "伺服器掛了呢...");
}
Message message = Message.obtain();
message.obj = from;
mHandler.sendMessage(message);
};
}.start();
}
}
相關文章
- 智慧配送機器人現狀機器人
- 智慧移動機器人如何快速低成本構建?機器人
- 智慧升級:AntSK教你如何讓聊天機器人實現智慧聯網操作機器人
- 財務rpa機器人 快速實現企業財務自動化機器人
- 倉庫智慧分揀機器人RFID,如何實現分揀工作機器人
- 移動機器人如何在陌生環境中實現智慧導航?機器人
- 智慧對話機器人實戰視訊教程機器人
- 新支點ICG智慧巡檢機器人實現影片回傳的解決方案機器人
- 電話機器人是如何實現對話的?機器人
- 智慧機器人展現廣闊應用前景JH機器人
- 資料分析:AI智慧科技影響下,電話機器人實現落地AI機器人
- Python 實現圖靈微信機器人Python圖靈機器人
- 實在智慧RPA機器人帶你瞭解人工智慧的前世今生機器人人工智慧
- 智慧電話機器人的好處機器人
- 機器人託管2.0,更智慧、更個性的AI客服機器人機器人AI
- 人工智慧電話機器人是否真正實現了電話銷售的AI化人工智慧機器人AI
- 智慧語音機器人的價值體現在哪些方面?機器人
- 回顧·智慧導購對話機器人實踐機器人
- 搭建智慧問答機器人機器人
- 智慧機器人&簡訊API機器人API
- 實現有效的機器人教育培訓管理模式機器人模式
- 智慧咖啡廳助手:人形機器人 +融合大模型,行為驅動的智慧咖啡廳機器人機器人大模型
- 工業智慧閘道器實現工業機器人資料採集遠端監控機器人
- 實在智慧RPA機器人帶你走進元宇宙的殿堂機器人元宇宙
- 使用Golang + lua實現一個值班機器人Golang機器人
- 智慧聊天對話機器人的對比機器人
- 樹莓派實戰:微信機器人(itchat實現)樹莓派機器人
- 【智慧製造】機器人與智慧製造機器人
- 娃哈哈智慧機器人公司成立:飲料巨頭娃哈哈要做智慧機器人了機器人
- 透過認識AI智慧機器人的功能,全面瞭解電話機器人AI機器人
- 智慧流程機器人助你“聚划算”機器人
- 優傲機器人:人機協作機器人助推電子製造業智慧升級機器人
- 【工業機器人】機器人換人整體解決方案整合商——癸午智慧機器人
- 停車機器人上崗 實現停車場無人值守機器人
- 谷歌機器人專家:機器人在現實中碰過的壁,AI也會碰谷歌機器人AI
- 機器學習實戰-SVM模型實現人臉識別機器學習模型
- 人形機器人:影片裡性感,現實中孤獨機器人
- 企業微信整合openai實現ChatGPT機器人OpenAIChatGPT機器人
- 使用Robot機器人框架實現自動化操作機器人框架