gpt4 book ai didi

android - 从 PreferenceScreen 启动 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:37:55 24 4
gpt4 key购买 nike

我有一个字符串列表(存储在数据库中,而不是作为资源)和
我想允许用户编辑此列表。这很容易用普通的Activity
但在此应用程序中,该列表应该是用户首选项的一部分。
基本上它是用户希望可用的句子列表。

因为我想提供一致的 UI,所以我想将其添加到首选项屏幕:

<PreferenceScreen xmlns:android="...">
<!-- Some other categories and preferences here -->
<PreferenceScreen android:key="PREF_PDT"
android:title="Predefined Texts"
android:summary="View and edit the list of predefined texts">
</PreferenceScreen>
<!-- Some other categories and preferences here -->
<PreferenceScreen>

现在假设我有一个完全可用的Activity,它允许我编辑数据库中的文本,
我该怎么做才能在用户点击“PREF_PDT”项时Activity被使用了吗?

我认为我必须对 Activity
进行一些修改或创建某种自定义首选项 View ?

更新:所以要清楚一点,我不需要“列表”屏幕来 Hook 设置,
我只需要给用户一个印象,他们仍然是在应用程序的首选项部分(当然不会破坏导航堆栈)。否则,他们必须去一个地方编辑一些设置,然后去另一个地方编辑文本。他们希望在“设置”下找到所有内容

更新:我已将“自定义首选项屏幕以编辑项目列表”中的问题重命名,因为现在很清楚我正在尝试做的是从 PreferenceScreen 启动 Activity 。 sh404 的回答有帮助,但我找不到正确的语法来引用我想要 luanch 的 Activity 。也许它是monodroid特有的。 (ActivityNotFoundException)

最佳答案

这样写:

<Preference
android:key="mykey"
android:title="TheTitle"
android:summary="summary here" >
<intent android:action="net.hasnath.android.MyActivity"/>
</Preference>

如果需要传递 Intent Extras:

<Preference
android:key="mykey"
android:title="TheTitle"
android:summary="summary here" >
<intent android:action="net.hasnath.android.MyActivity">
<extra android:name="extra_name" android:value="my_value" />
<extra android:name="extra_2_name" android:value="my_value_2"/>
</intent>
</Preference>

接下来您必须在 AndroidManifest.xml 中声明 Activity
或者您可以像这样在首选项屏幕中声明 Intent :

<intent android:targetPackage="net.hasnath.android"
android:targetClass="net.hasnath.android.MyActivity"/>

这样您就不必对 AndroidManifest 进行任何更改。

关于android - 从 PreferenceScreen 启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com