public class Chat extendsActivity {
TextView tv_name;
EditText et_input;
Button bt_send;
ClientThread clientThread;privateListView listview ;private ListmData ;privateChatMessageAdapter mAdapter ;private static final String tag = "Chat";private Handler handler = newHandler(){
@Overridepublic voidhandleMessage(android.os.Message msg) {if(msg.what == 0x123){
ChatMessage receiveMsg=(ChatMessage) msg. obj;
mData.add(receiveMsg);
mAdapter.notifyDataSetChanged();
listview.setSelection(mData .size()- 1);
}
}
};
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
requestWindowFeature(Window. FEATURE_NO_TITLE);
setContentView(R.layout. chat);
initView();//初始化view
initData();//初始化数据
clientThread= newClientThread(handler);new Thread(clientThread ).start(); //启动新线程发送信息
bt_send.setOnClickListener(newOnClickListener() {
@Overridepublic voidonClick(View v) {final String inputMsg =et_input.getText().toString();
Log. v(tag,"inputMsg: " +inputMsg);if(TextUtils.isEmpty(inputMsg)){
Toast. makeText(Chat.this, "发送消息不能为空!", Toast.
LENGTH_SHORT).show();
}try{
ChatMessage cm= newChatMessage();
cm.setDate(newDate());
cm.setMsg(inputMsg);
cm.setType(Type. OUTCOMING);
cm.setName("paul");
mData.add(cm);
mAdapter.notifyDataSetChanged();
listview.setSelection(mData .size()- 1);
Message msg= newMessage();
msg. what= 0x345;
msg. obj=inputMsg;
et_input.setText("");
clientThread.revHandler .sendMessage(msg);//发送信息
}catch(Exception e) {
e.printStackTrace();
}
}
});
}private voidinitData() {
mData= new ArrayList();
String data=et_input.getText().toString();
mAdapter= new ChatMessageAdapter(Chat.this, mData);
listview.setAdapter(mAdapter );
}private voidinitView() {
tv_name=(TextView) findViewById(R.id.tv_name);
et_input=(EditText) findViewById(R.id.et_input);
bt_send=(Button) findViewById(R.id.bt_send);
listview=(ListView) findViewById(R.id.id_listview);
}