使用联系人的自定义字段执行某些操作

发布于 2024-10-27 19:52:19 字数 484 浏览 1 评论 0原文

我为我的联系人添加了自定义字段。它包括:

<ContactsSource xmlns:android="http://schemas.android.com/apk/res/android">
 <ContactsDataKind
  android:icon="@drawable/ic_launcher"
  android:mimeType="vnd.android.cursor.item/vnd.com.mob.my_new.profile"
  android:summaryColumn="data2"
  android:detailColumn="data3"
  android:detailSocialSummary="true" />

目前。当用户在 Android 联系人中选择我的字段时,我想执行一些操作(例如 - 启动活动)。我怎样才能实现这个? (它将类似于 Facebook 自定义字段 - 显示个人资料页面)

I have added custom field for my Contacts. It consists of:

<ContactsSource xmlns:android="http://schemas.android.com/apk/res/android">
 <ContactsDataKind
  android:icon="@drawable/ic_launcher"
  android:mimeType="vnd.android.cursor.item/vnd.com.mob.my_new.profile"
  android:summaryColumn="data2"
  android:detailColumn="data3"
  android:detailSocialSummary="true" />

for now. I want to perform some action (for example - launch an activity) when user selects this my field in Android Contacs. How I can implement this?
(It will be similar to facebook custom field - showing profile page)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

枕花眠 2024-11-03 19:52:19

我找到了答案。我们可以通过以下方式实现这样的功能:
1)创建新型联系人字段(请参阅答案末尾的链接);

2) 创建一个 Activity,它将执行此操作:

if (getIntent().getData() != null) {
        Cursor cursor = managedQuery(getIntent().getData(), null, null, null, null);
        if (cursor.moveToNext()) {
            String username = cursor.getString(cursor.getColumnIndex("DATA1"));
            TextView tv = (TextView) findViewById(R.id.profiletext);
            tv.setText("This is the profile for " + username);
        }
    } else {
        // How did we get here without data?
        finish();
    }

3) 在 Manifest.xml 中向 Activity 添加特殊意图:

<activity android:name=".ProfileActivity"
                android:label="Profile">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.org.c99.SyncProviderDemo.profile" />
        </intent-filter>
    </activity>

找到答案(和完整教程)此处

I found the answer. We can implement such functionality by:
1) creating new type of Contacts field (see link at the end of answer);

2) creating an Activity, which will perform this action:

if (getIntent().getData() != null) {
        Cursor cursor = managedQuery(getIntent().getData(), null, null, null, null);
        if (cursor.moveToNext()) {
            String username = cursor.getString(cursor.getColumnIndex("DATA1"));
            TextView tv = (TextView) findViewById(R.id.profiletext);
            tv.setText("This is the profile for " + username);
        }
    } else {
        // How did we get here without data?
        finish();
    }

3) adding special intent to Activity in our Manifest.xml:

<activity android:name=".ProfileActivity"
                android:label="Profile">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/vnd.org.c99.SyncProviderDemo.profile" />
        </intent-filter>
    </activity>

The answer (and full tutorial) was found here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文