Android<操练>:Gtalk(显示好友列表)
截图:
1.jpg (32.45 KB)
登陆界面
2008-6-14 18:07
2.jpg (26.96 KB)
好友列表
2008-6-14 18:07
此处注意:
在操作这个之前,要在先前<登录>程序里面修改两处:
1.mGtalkSession =
xmppservice.createGTalkSession(login_User.getText().toString(),login_Pwd.getText().toString());
mGtalkSession.requestRoster();
2.case 5:
mGtalkSession.setPresence(new Presence(Im.PresenceColumns.AVAILABLE, "Am here now!"));
createContact();
logMessage("the client requested roster from the server.");
代码:
import android.app.Activity;
import android.database.Cursor;
import android.graphics.Typeface;
import android.os.Bundle;
import android.provider.Im;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class ContactsActivity extends Activity {
private static final String TAG="microChat.ContactsView";
private static final boolean DEBUG=true;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.contacts);
// Run a query against CONTENT_URI = "content://im/contacts"
Cursor cursor=managedQuery(Im.Contacts.CONTENT_URI, null,null, null, null);
TableLayout layout=(TableLayout)findViewById(R.id.contacts_table_layout);
int PRESENCE_STATUS=cursor.getColumnIndex(Im.PresenceColumns.PRESENCE_STATUS);
int NICKNAME=cursor.getColumnIndex(Im.ContactsColumns.NICKNAME);
int USERNAME=cursor.getColumnIndex(Im.ContactsColumns.USERNAME);
int numRows=cursor.count();
cursor.first();
for(int i=0;i<numRows;i++)
{ int presence=(int)cursor.getLong(PRESENCE_STATUS);
String name=cursor.getString(NICKNAME);
String jid=cursor.getString(USERNAME);
if(presence>0) layout.addView(row(new Contact(name,jid,presence)));
cursor.next();
}
}
class Contact
{ String name;
String jid;
int icon;
TextView text=null; // TODO: TEST
Contact(int i) // TEST
{ name="My Buddy "+i;
jid="Buddy"+i+"@jabber.net";
icon=R.drawable.icon;
}
Contact(String name,String jid,int presence)
{ this.name=" ("+presence+") "+name;
this.jid=jid;
switch(presence)
{
case Im.Presence.OFFLINE: icon=R.drawable.icon; break;
case Im.Presence.INVISIBLE: icon=R.drawable.icon; break;
case Im.Presence.DO_NOT_DISTURB: icon=R.drawable.icon; break;
case Im.Presence.AWAY: icon=R.drawable.icon; break;
case Im.Presence.IDLE: icon=R.drawable.icon; break;
case Im.Presence.AVAILABLE: icon=R.drawable.icon; break;
}
}
}
private TableRow row(final Contact contact)
{
TableRow template=(TableRow)findViewById(R.id.contacts_row_layout);
android.view.ViewGroup.LayoutParams layoutParams=template.getLayoutParams();
TableRow layout=new TableRow(this);
layout.setLayoutParams(layoutParams);
ImageView imageView=new ImageView(this);
imageView.setImageResource(contact.icon);
imageView.setPadding(2,6,2,0); // left, top, right, bottom
layout.addView(imageView);//,layoutParams);
final TextView text=new TextView(this);
text.setTag(contact); contact.text=text;
text.setText(contact.name);
text.setTypeface(Typeface.DEFAULT_BOLD);
text.setFocusable(true);
text.setOnClickListener(textClickListener);
layout.addView(text);//,layoutParams);
return(layout);
}
private OnClickListener textClickListener=new OnClickListener()
{ public void onClick(View view)
{ Contact contact=(Contact)view.getTag();
if(DEBUG) Log.d(TAG,"row: onClick: contactName="+contact.name);
}
};
}
分享到:
相关推荐
3. 联系人管理:Android系统的ContactsProvider接口被用于存储和检索联系人信息,GTalk客户端会利用这些信息建立和维护好友列表。 4. 事件通知:GTalk实现了推送通知服务,当有新消息到来时,系统会通过...
4. **展示好友列表**:在ASP.NET页面中,创建一个接口来显示这些好友。这可以通过创建一个简单的HTML列表或者使用ASP.NET的GridView控件来实现。 5. **处理用户交互**:添加按钮或其他UI元素,允许用户选择他们想要...
Google Talk(Gtalk)是Google公司开发的即时通讯工具,Gtalk除了具备一般IM功能外,还加上了Viop功能,Gtalk界面清晰大方,可直接链接Gmail,轻松接受邮件。欢迎下载最新版google talk。
gtalk.apk-android
【gtalk-robot: Python构建的GTalk机器人】 在IT领域,尤其是自动化和通信技术方面,GTalk(Google Talk)机器人是一种使用编程语言与GTalk服务进行交互的应用程序。在这个案例中,我们关注的是"gtalk-robot",一个...
本文将深入探讨“Gtalk C# 开发”这一主题,以帮助你理解如何利用C#来构建一个GTalk客户端,并探索可能的高级功能开发。 GTalk(Google Talk)是Google推出的一款即时通讯服务,它提供了文字聊天、语音通话和视频...
android4.0以上,给没有装google服务包的人。
然后你就可以用你的主控端发送消息的方式控制你的手机 ">GTalkSMS实现了一个xmpp机器人 只要你在自己的gtalk(xmpp)上增加这个机器人为好友 就能像聊天一样远程操作自己的android手机了 使用简单就像是在即时聊天...
5. **测试和调整**:启动GTalk后,检查界面是否按预期显示,如有必要,可进一步微调主题文件,直至达到满意的视觉效果。 通过上述步骤,无论是Vista还是XP用户,都可以轻松地自定义GTalk的界面样式,享受更加个性化...
标题中的“和gtalk一样的聊天工具”指的是寻找与Google Talk(简称gtalk)类似功能的即时通讯软件。Google Talk是一款由Google推出的即时通讯服务,它允许用户进行文字聊天、语音通话,并与其他Google服务(如Gmail...
这个机器人不仅能够自动发送预设的消息给指定的好友,还能接收并响应用户的输入,实现一定的智能对话功能。这种技术在自动化通知、客户服务、信息推送等方面有广泛应用。 首先,让我们深入了解一下VB.NET。VB.NET是...
1 What Is Android? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Brief History of Embedded Device Programming . . . . . . . . . . . . . . . . . . . . ...
第12章 Android的搜索引擎和Gtalk开发 12.1 搜索引擎在手机中的应用 12.1.1 本地搜索 12.1.2 Web搜索 12.2 Android搜索引擎API简介 12.3 应用实例详解:过滤式搜索 引擎程序 12.3.1 实例分析 12.3.2 实例实现 12.4 ...
GTalk 绿色单文件版
Android 系统广播大全 Android 系统广播是 Android 操作系统中的一种机制,用于在应用程序之间进行通信和交互。它允许不同的应用程序和系统组件之间进行通信,实现了数据的共享和交互。 Android 系统广播大全涵盖了...
难得资源,gtalk是google聊天工具,挂着几乎没有流量,发消息与接消息占多少用多少流浪,飞信比QQ省流量,精简飞信比飞信省流量,gtalk比精简飞信还省流量。挂着用吧。热爱网络,珍惜收藏
完美解决android电子市场不能下载,Gtalk、Gmail不能正常使用……弄法见内部操作指南
标题中的“gtalk接口二次开发告警平台”指的是基于Google Talk (gtalk) 的API进行的二次开发项目,主要用于创建一个告警系统。这个系统能够通过gtalk接口发送通知,以便在特定事件或异常发生时及时提醒用户。下面将...
#### 知识点一:Android的P2P通信基础 在Android开发中,P2P(点对点)通信是一种重要的技术,允许设备之间直接进行通信,而无需通过中央服务器。在第九章中,详细介绍了如何利用Android的P2P通信协议,具体指的是...