有什么办法可以从偏好中添加额外的意图吗?
您好,我正在从首选项屏幕启动活动。活动由三个偏好共享。 我想知道我是否可以在 xml 中为此活动设置额外的内容,
<Preference
android:key="action_1"
android:title="@string/action_1_title"
>
<intent
android:action="com.package.SHAREDACTION"
>
</intent>
</Preference>
我想知道我是否可以做类似
<extras>
<item
android:name=""
android:value=""/>
</extras>
“我需要做的所有事情来传递一个整数”之类的事情。我可以执行不同的操作并检查操作而不是额外的操作。
Hi i'm launching activity from preferences screen. Activity is shared among three preferences.
I wonder if i can set extras for this activity in xml
<Preference
android:key="action_1"
android:title="@string/action_1_title"
>
<intent
android:action="com.package.SHAREDACTION"
>
</intent>
</Preference>
i wonder if i can do something like
<extras>
<item
android:name=""
android:value=""/>
</extras>
All i need to do to pass an integer really. I can different actions and check action instead of extras.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
我得到了答案,你可以这样使用它:
I got an answer, you can use it like this:
将首选项添加到preference.xml 文件中:
然后您可以使用setOnPreferenceClickListener 来启动带有附加功能的Intent。
Add the preference to the preference.xml file:
And then you can use a setOnPreferenceClickListener to launch an Intent with extras.
文档 此处描述了一个意图数据字段。
它在 API 演示应用程序中用于 XML 首选项,以在意图首选项示例中启动意图。
相关示例 xml 来自该演示,位于preferences.xml:
也许这种方法适合您?
There is a data field for intents described in the documentation here.
It is used in the API demo application for the XML preferences to launch an intent in the Intent Preferences example.
Related example xml from that demo in preferences.xml:
Maybe this approach could work for you?
为我工作。
working for me.
由于您的 extra 不是常量,因此您应该在 java 代码而不是 xml 中传递它们。
As your extras are not constants, you should pass them in the java code instead of xml.
您可以用来
发送意图数据。然后在您的活动中只需使用:
You can use
to send the intent data. Then in your activity simply use:
要发送电子邮件或市场价格,您需要使用类似的东西
To send email or rate on market you need to use something like
并不是你问题的真正答案,但非常相关。也许有人会发现它很有用。
对于较新的 API (>11),您有一个首选项标头文件,并且可以为其中一个标头定义自定义意图。我试图将自定义 Extra 添加到其中一个标头,我发现的解决方案如下所示:
在您的首选项-headers.xml 中:
在您的“MyPreference”类(扩展 PreferenceActivity)中,您有:
Not really an answer to your question, but very much related. Maybe someone will find it useful.
For newer API (>11) you have a preference-headers file and you can define custom intents for one of the headers. I was trying to add a custom Extra to one of the headers and the solution I found goes like this:
In your preference-headers.xml:
In your "MyPreference" class (extends PreferenceActivity) you have: