首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在widget中显示QuickContact卡片

如何在widget中显示QuickContact卡片
EN

Stack Overflow用户
提问于 2010-08-09 01:07:06
回答 4查看 4.1K关注 0票数 5

我有一个小部件,它显示我的一些联系人的图片,当用户点击其中一张图片时,我想显示QuickContact卡。我知道我应该使用ContactsContract.QuickContact.showQuickContact(),方法,但它需要一个视图或Rect作为输入参数之一。我的问题是小部件只有RemoteViews,所以我不确定要传递什么作为View或Rect参数。任何想法都将不胜感激。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-09 03:46:18

您可以在XML中引用该徽章

我在XML文件中有以下内容:

代码语言:javascript
复制
     <QuickContactBadge
     android:id="@+id/photo"
    android:layout_width="54dip"
    android:layout_height="57dip"
    android:layout_marginLeft="5dip"
    android:background="@drawable/quickcontact_photo_frame"
    style="?android:attr/quickContactBadgeStyleWindowSmall"
     />

这段代码是:

代码语言:javascript
复制
private QuickContactBadge mPhotoView;
mPhotoView = (QuickContactBadge) findViewById(R.id.photo);
mPhotoView.assignContactUri(objItem.getUri());
mPhotoView.setMode(QuickContact.MODE_MEDIUM);

这是呼叫模式(但是点击徽章是处理这个弹出窗口,这个呼叫也是弹出的,选择器是通过点击其他东西来实现的)

代码语言:javascript
复制
QuickContact.showQuickContact(viewContactQuick.this, mPhotoView,objItem.getLookupUri() , QuickContact.MODE_MEDIUM, null);
票数 4
EN

Stack Overflow用户

发布于 2011-02-05 07:20:37

要在小部件上显示QuickContact UI,您可以使用如下所示的技术创建一个回调PendingIntent:

http://advback.com/android/working-with-app-widgets-android/

在您的小部件onUpdate()中,创建意图并将其与RemoteView相关联:

代码语言:javascript
复制
intent = new Intent(context, MyWidget.class);  
intent.setAction(ACTION_WIDGET_RECEIVER);  
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
intent.setData(uri);
pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.my_widget_view, pendingIntent);

当单击视图时,您将在小部件中收到一个onReceive()通知。使用Intent.getSourceBounds()检索rect,并显示QuickContact:

代码语言:javascript
复制
public void onReceive(Context context, Intent intent) {  
 if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) {  
    Uri uri = intent.getData();
    if ( uri != null ) {
        QuickContact.showQuickContact(context, intent.getSourceBounds(), uri, ContactsContract.QuickContact.MODE_SMALL, null);
    }
 }  
 super.onReceive(context, intent);
}  
票数 6
EN

Stack Overflow用户

发布于 2010-09-21 17:38:01

我也一直在找这个。也许联系人应用程序的源代码会有所帮助。我正在尝试挖掘:link text

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3435239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档