android – 如何在SyncAdapter中添加类别

android – 如何在SyncAdapter中添加类别,第1张

概述我尝试了一个伟大的Google示例来同步来自Web服务的联系人,并且工作正常. 这称为SampleSyncAdapter,非常值得: http://developer.android.com/resources/samples/SampleSyncAdapter/index.html 我已经完成了所有工作,但我无法在示例中或在文档中找到添加链接到自定义活动的类别的方法,就像下面的屏幕截图一样: ( 我尝试了一个伟大的Google示例来同步来自Web服务的联系人,并且工作正常.
这称为SampleSyncAdapter,非常值得: http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

我已经完成了所有工作,但我无法在示例中或在文档中找到添加链接到自定义活动的类别的方法,就像下面的屏幕截图一样:

(我只有同步帐户选项和复选框)

所以,我的问题是:如何添加帐户设置类别?

解决方法 herschel的答案为通用解决方案提供了 link.以下是如何修改 SampleSyncAdapter源以添加自定义首选项(AndroID 2.3.4),如上图所示:

>请记住,帐户管理器作为系统进程运行,因此如果代码中存在未处理的异常,缺少清单条目或xml中的错误,手机将崩溃.
>创建account_preferences.xml资源文件.

>实际首选项屏幕的androID:键值必须指定为“account_settings”.
>如果要将自定义首选项放在类别中,则需要
在定义时关闭Preferencecategory标记;如果您将PreferenceScreen放在类别中,则单击首选项时手机将崩溃.

XML:

<PreferenceScreen xmlns:androID="http://schemas.androID.com/apk/res/androID">    <Preferencecategory androID:title="General Settings" />    <PreferenceScreen androID:key="account_settings"            androID:title="Account Settings"            androID:summary="Sync frequency,notifications,etc.">        <intent androID:action="com.example.androID.samplesync.ACCOUNT_SETUP"            androID:targetPackage="com.example.androID.samplesync"            androID:targetClass="com.example.androID.samplesync.AccountPreferences" />    </PreferenceScreen></PreferenceScreen>

>在authenticator.xml末尾添加对account_preferences.xml的引用:

<account-authenticator xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:accountType="com.example.androID.samplesync" androID:label="@string/label"    androID:icon="@drawable/icon" androID:smallicon="@drawable/icon"    androID:accountPreferences="@xml/account_preferences" />

>创建首选项活动并将其添加到清单.我使用了How do we control an Android sync adapter preference?答案中的示例代码的简化版本.

一个.将活动添加到清单:

<activity androID:label="Account Preferences" androID:name=".AccountPreferences"   androID:theme="@androID:style/theme.Dialog" androID:excludeFromrecents="true" />

湾这是最简单的AccountPreferences.java:

public class AccountPreferences extends PreferenceActivity {    @OverrIDe    public voID onCreate(Bundle icicle) {        super.onCreate(icicle);        addPreferencesFromresource(R.xml.preferences_resources);    }}

C.这是带有硬编码字符串的preferences_resources.xml:

<PreferenceScreen xmlns:androID="http://schemas.androID.com/apk/res/androID">    <Preferencecategory androID:title="Privacy preferences"/>        <CheckBoxPreference androID:key="privacy_contacts" androID:defaultValue="true"                androID:summary="Keep contacts private" androID:title="Contacts"/>    <Preferencecategory androID:title="Outgoing"/>        <CheckBoxPreference androID:key="allow_mail" androID:defaultValue="true"                androID:summary="Allow email" androID:title="Email"/></PreferenceScreen>

>就是这样.安装代码,打开帐户,然后选择SampleSyncAdapter帐户(user1).选择帐户设置,您会看到设置活动.

Custom sync preferences http://i49.tinypic.com/5d6ve0.jpg

总结

以上是内存溢出为你收集整理的android – 如何在SyncAdapter中添加类别全部内容,希望文章能够帮你解决android – 如何在SyncAdapter中添加类别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1128920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存