標籤:
之前的教程不知道你們成功了沒,,,沒成功可以問我啊=-=
第四篇博文是要實現發送訊息的功能。首先在我們登陸後的活動的layout裡添加這樣的兩個控制項,一個EditText和一個Button用於發送資料
1 <EditText android:id="@+id/edit_text_out" 2 android:layout_width="0dp" 3 android:layout_height="wrap_content" 4 android:layout_weight="1" 5 android:layout_gravity="bottom" 6 android:hint="說點什麼呢?" 7 /> 8 <Button 9 android:id="@+id/button_send"10 android:layout_width="wrap_content"11 android:layout_height="wrap_content"12 android:scaleType="centerCrop"13 android:text="sent"14 android:layout_gravity="bottom"15 android:background="#00000000"16 />
然後回到該活動,添加Button和Button的監聽事件:
1 Button button=(Button)findViewById(R.id.button_send); //找到Button 2 button.setOnClickListener(new View.OnClickListener() { 3 @Override 4 public void onClick(View v) { 5 EditText input=(EditText) findViewById(R.id.edit_text_out); //找到EditText 6 final String content=input.getText().toString(); //把裡面的東西去出來轉化為字串 7 Log.i(username+"說===", content); //列印在日誌裡 8 try { 9 XMPPConnection connection = connect.getConnection(); //與伺服器進行串連10 ChatManager cm = connection.getChatManager(); 11 Chat chat=cm.createChat(“[email protected]/Spark 2.6.3”, new MessageListener() {//傳入兩個參數一個是說話對象:這裡我們放入我們伺服器管理員的名字寫的時候要加ip和版本號碼,第二個參數是訊息的監聽者12 @Override13 public void processMessage(Chat chat, Message msg) { //設定訊息的監聽14 msg.setBody(content); //msg(注意是asmack包裡的)把我們取出的輸入內容放進去15 Log.i(msg.getFrom() + "說:" + msg.getBody()); //列印日誌16 17 }18 });19 Message m = new Message(); //把資訊發送給對方20 m.setBody(content); 21 chat.sendMessage(m.getBody());22 } catch (XMPPException e) {23 e.printStackTrace();24 }25 }26 });
在編輯欄輸入一堆東西
我們就能看到伺服器端的列印資料了,一次是發送監聽到的,一次是接收監聽到的
我們在開啟Spark的用戶端給我們的虛擬機器登入使用者發送一條資料:
我們在Spark的用戶端登入admin就能接收到這條訊息了!
這樣我們就既能發送資料,又能接收資料了!用戶端的初級功能就基本完成
明天或者下午有空的話會寫下一篇,進行簡單的美化和修整,畢竟總不能介面這麼醜,接受發送還靠列印日誌啊!
求推薦=-=!
openfire+asmack搭建的安卓即時通訊(四) 15.4.10