Android 开发及时聊天工具 YQ :(六) 最近会话列表
Android 开发即时聊天工具 YQ :(六) 最近会话列表
RecentActivity中listview的Adapter:
实现的效果如图:
RecentActivity:
public class RecentActivity extends Activity{
ListView listView;
List<RecentEntity> chatEntityList=new ArrayList<RecentEntity>();
String[] mes;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_recent);
//注册广播
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction("org.yhn.yq.mes");
registerReceiver(new MyBroadcastReceiver(), myIntentFilter);
listView = (ListView) findViewById(R.id.lv_recent);
listView.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
//打开聊天页面
Intent intent=new Intent(RecentActivity.this,ChatActivity.class);
intent.putExtra("account", Integer.parseInt(mes[0]));
intent.putExtra("nick", "");
startActivity(intent);
}
});
}
//广播接收器
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
mes = intent.getStringArrayExtra("message");
Toast.makeText(context, "收到["+Integer.parseInt(mes[0])+"]的消息:"+mes[1], Toast.LENGTH_SHORT).show();
//更新最近会话列表, 检测chatEntityList,防止同一个好友的消息出现多个会话实体
Iterator it=chatEntityList.iterator();
if(chatEntityList!=null && chatEntityList.size()!=0){
while(it.hasNext()){
RecentEntity re=(RecentEntity) it.next();
if(re.getAccount()==Integer.parseInt(mes[0])){
chatEntityList.remove(re);
}
}
}
chatEntityList.add(new RecentEntity(5, Integer.parseInt(mes[0]), mes[0]+"", mes[1],mes[2], false));
listView.setAdapter(new RecentAdapter(RecentActivity.this, chatEntityList));
unregisterReceiver(this);
}
}
}
RecentActivity中listview的Adapter:
public class RecentAdapter extends BaseAdapter{
private Context context;
private List<RecentEntity> list;
LayoutInflater inflater;
public RecentAdapter(Context context,List<RecentEntity> list){
this.context = context;
this.list = list;
inflater = LayoutInflater.from(context);
}
public View getView(int position, View convertView, ViewGroup root) {
convertView = inflater.inflate(R.layout.recent_listview_item, null);
ImageView avatar=(ImageView) convertView.findViewById(R.id.iv_avatar_r);
TextView nick=(TextView) convertView.findViewById(R.id.tv_nick_r);
TextView content=(TextView) convertView.findViewById(R.id.tv_chat_content_r);
ImageView isRead=(ImageView) convertView.findViewById(R.id.iv_tip_mes_r);
TextView time=(TextView) convertView.findViewById(R.id.tv_time_r);
RecentEntity re=list.get(position);
nick.setText(re.getNick());
content.setText(re.getContent());
isRead.setImageResource(R.drawable.tips_message);
time.setText(re.getTime());
return convertView;
}
public int getCount() {
return list.size();
}
public Object getItem(int position) {
return list.get(position);
}
public long getItemId(int position) {
return position;
}
}
消息实体类,就不贴代码了,很简单,你懂的
--------------------------------------------------分割线----------------------
完善了部分界面,以及一些细节,
后台运行,
增加了用户头像(简易方式,暂不能自定义头像),
用户个人信息
。。。
具体就不说了看图吧:
PS:
项目基本完成,有些细节还需要完善,有想现在要源码的也可以留下U箱,源码中有详细注释。我会在第一时间回复!
谢谢大家支持!欢迎一起学习交流!
转载请注明出处:http://blog.****.net/mimitracely
- 14楼mimitracely昨天 15:46
- 楼下已发
- 13楼Neacy_Zz昨天 15:17
- 704772576@qq.com 求赐教。
- 12楼Yawaas_mentor昨天 14:09
- 。。Email :yaawaas@foxmail.com
- 11楼mimitracely昨天 14:09
- 已发,谢谢支持,
- 10楼dzh392319164昨天 10:58
- Email:zhenhua0791@163.comnths,master of billboard
- Re: mimitracely昨天 14:08
- 回复dzh392319164n已发
- 9楼M136540328昨天 23:59
- 求源码,谢谢楼主eamil:136540328@qq.com
- Re: mimitracely昨天 10:15
- 回复M136540328n已发
- 8楼rainJohn1573昨天 22:40
- 麻烦楼主发一份源码,学习一下哦。412959766@qq.com
- Re: mimitracely昨天 23:08
- 回复rainJohn1573n已发
- 7楼xuwu168168昨天 19:53
- 496184695@qq.com
- Re: mimitracely昨天 22:34
- 回复xuwu168168n已发
- 6楼changemyself昨天 18:10
- 俺也要一份学习一下,song2c@163.com,多多交流
- Re: mimitracely昨天 19:28
- 回复changemyselfn已发
- 5楼c53971992昨天 18:07
- 博主,45611196@QQ.COM感谢了
- Re: mimitracely昨天 18:08
- 回复c53971992n已发
- 4楼ly19881106昨天 18:04
- 发给我 jaylong1302@163.com
- 3楼kongre昨天 17:30
- 825086347@qq.com,麻烦博主。
- Re: mimitracely昨天 17:59
- 回复kongren已发
- 2楼cyf546524268昨天 16:57
- 546524268@qq.com
- 1楼ilittleone昨天 15:39
- 楼主可以在google建个项目,留给thinkinbunny@gmail.com 3q
- Re: mimitracely昨天 16:02
- 回复ilittleonen已发
- Re: ilittleone昨天 16:50
- 回复mimitracelyn3q so much