5. 聊天界面
public class Chat extends Activity {
private String mUserName;
private EditText mEdit;
private ListView mMessage;
private ReceiverMessage mRecMessage;
private SendMessage mSendMesage;
private List<Map<String, String>> mData = new ArrayList<Map<String, String>>();
private MessagesAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chat_layout);
mUserName = getIntent().getStringExtra("user");
mEdit = (EditText) findViewById(R.id.edit);
mMessage = (ListView) findViewById(R.id.message);
mRecMessage = new ReceiverMessage();
mRecMessage.setOnReceiverListener(new RecListener());
mRecMessage.run();
mSendMesage = new SendMessage();
mSendMesage.setOnSendListener(new SendListener());
mAdapter = new MessagesAdapter(this, mData);
mMessage.setAdapter(mAdapter);
}
public void send(View view) {
String[] content = mEdit.getText().toString().trim().split(":");
mSendMesage.send(mUserName, content[0], content[1]);
}
private class RecListener implements ReceiverMessage.OnReceiverListener {
@Override
public void onReceiver(String user, String msg) {
Map<String, String> temp = new HashMap<String, String>();
temp.put("user", user);
temp.put("msg", msg);
temp.put("pos", "right");
mData.add(temp);
mAdapter.notifyDataSetChanged();
}
}
private class SendListener implements SendMessage.OnSendListener {
@Override
public void onSend(String[] msg) {
Map<String, String> temp = new HashMap<String, String>();
temp.put("user", "我");
temp.put("msg", msg[1]);
temp.put("pos", "left");
mData.add(temp);
mAdapter.notifyDataSetChanged();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(R.id.logout == item.getItemId()) {
Logout logout = new Logout();
logout.setOnLogoutListener(new Logout.OnLogoutListener() {
@Override
public void onLogout(boolean success) {
if(success) {
Toast.makeText(Chat.this, "注销成功", Toast.LENGTH_SHORT).show();
finish();
}else {
Toast.makeText(Chat.this, "注销失败", Toast.LENGTH_SHORT).show();
}
}
});
logout.logout(mUserName);
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
}










