聊天介面以及contextm

2021-07-13 13:15:42 字數 2057 閱讀 5136

聊天介面,首先是布局,先用tools下的製作9patch的工具製作兩張對話方塊,分別用作接收訊息的背景和傳送訊息的背景。activity_main.xml的布局檔案如下:

顯而易見,利用listview來顯示傳送的和接收的訊息,既然有了listview,所以還應該有乙個listview的item布局,item布局如下:

<?xml version="1.0" encoding="utf-8"?>

其中@drawable引用的就是我們製作的兩張對話方塊9patch。

既然是聊天介面,又是用listview來顯示,所以得新建乙個message的實體類,定義兩個屬性,content和type,並且進行封裝.

public class message 

public string getcontent()

public void setcontent(string content)

public int gettype()

public void settype(int type)

}

接下來就是寫資料來源介面卡了,初學時listview一般都是和arrayadapter和******adapter,我一直用的都是更加靈活的自定義adapter。所以,新建乙個介面卡繼承baseadapter.

public class messageadapter extends baseadapter 

public void additem(message msg)

public void removeitem(int position)

@override

public int getcount()

@override

public object getitem(int position)

@override

public long getitemid(int position)

@override

public view getview(int position, view convertview, viewgroup parent) else

// 如果是收到的訊息,則隱藏掉右邊的布局

if (list.get(position).gettype() == message.type_received) else if (list.get(position).gettype() == message.type_send)

return convertview;

} class viewholder

}

最後,開始在activity中編寫。

/**

* 聊天介面

* @author zcsolf

* */

public class mainactivity extends activity implements onclicklistener

/*** 初始化訊息,即模擬訊息

*/private void initmessage()

/*** 初始化元件

*/private void findview()

@override

public void onclick(view v)

break;

default:

break;

} }/**

* 生成上下文選單

*/@override

public void oncreatecontextmenu(contextmenu menu, view v,

contextmenuinfo menuinfo)

/*** 響應上下文選單

*/@override

public boolean oncontextitemselected(menuitem item)

return true;

}}

聊天介面實現

聊天介面是乙個listview,item是接受訊息介面和傳送訊息介面,list裡面的實體類有資訊內容和資訊型別 是傳送還是接收 adapter展示資料的時候,根據資訊型別隱藏或者顯示item的接受訊息介面或者傳送訊息介面。當傳送訊息的時候,list新增乙個實體類,adapter呼叫adapter.n...

簡單聊天介面

1.在main.storyboard中建立控制器和控制項,新增約束,設定textfield 如圖 2.為tableview在控制器上新增delegate datasource,為textfield新增delegate 3.在viewcontroller.m中新增 inte ce viewcontro...

Python 聊天介面編寫

import osfrom tkinter import import time os.chdir e actdata defmain def sendmsg 傳送訊息 strmsg 我 time.strftime y m d h m s time.localtime n print strmsg ...