Android 開發即時聊天工具 YQ :(八) 新增/刪除好友
阿新 • • 發佈:2018-12-31
國際慣例,先上圖:
程式碼比較簡單,只需給listview設定Listener就OK,
當點選刪除後,這裡沒有做提示,會直接刪除,刪除後應當給伺服器傳送一個刪除好友的包,伺服器端更新資料庫中的資料。
然後客戶端要做的就是更新下好友列表。
具體看程式碼吧:
private void setListViewListener() { listView.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView<?> a, View v, int position,long l) { temp= (BuddyEntity) listView.getItemAtPosition(position); //開啟聊天頁面 Intent intent=new Intent(BuddyActivity.this,ChatActivity.class); intent.putExtra("avatar", temp.getAvatar()); intent.putExtra("account",temp.getAccount()); intent.putExtra("nick", temp.getNick()); startActivity(intent); } }); listView.setOnItemLongClickListener(new OnItemLongClickListener(){ public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int position, long arg3) { temp= (BuddyEntity) listView.getItemAtPosition(position); listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener(){ public void onCreateContextMenu(ContextMenu menu, View arg1, ContextMenuInfo arg2) { menu.setHeaderTitle("操作"); menu.add(0,0,0,"發起會話"); menu.add(0,1,0,"刪除好友"); menu.add(0,2,0,"檢視好友資料"); } }); return false; } }); } public boolean onContextItemSelected(MenuItem item) { switch(item.getItemId()){ case 0: //開啟聊天頁面 Intent intent=new Intent(BuddyActivity.this,ChatActivity.class); intent.putExtra("avatar", temp.getAvatar()); intent.putExtra("account",temp.getAccount()); intent.putExtra("nick", temp.getNick()); startActivity(intent); break; case 1: //向伺服器傳送一個刪除好友的包 SendMessage.sendADbuddy(MoreActivity.me.getAccount(), temp.getAccount(), YQMessageType.DEL_BUDDY); //刪除好友列表中的該好友 for(int i=0;i<buddyEntityList.size();i++){ if((buddyEntityList.get(i).getAccount())==temp.getAccount()){ buddyEntityList.remove(i); } } listView = (ListView) findViewById(R.id.listview); ba=new BuddyAdapter(this,buddyEntityList); listView.setAdapter(ba); break; case 2: // break; } return super.onContextItemSelected(item); }
話說中午飯還沒吃呢,吃飯去了。