如何将一个偏好设置从一个偏好设置屏幕移动到另一个偏好设置屏幕?(Java相关)

3
我正在尝试实现类似于iOS可编辑UITableView的功能。如果用户点击“添加新项目”,则会进入一个具有多个<Preference>元素的PreferenceScreen,单击后应从该屏幕中消失并将其添加到“已添加列表”(实际上是一个<PreferenceCategory>),然后他们应该能够从这里删除它们或编辑它们的顺序。这类似于iOS可编辑列表。
这是我的XML:
<PreferenceScreen android:title="ALL APPS" android:key="app_list">  
    <!-- A <preference> for each app -->
</PreferenceScreen>
<PreferenceCategory android:title="ADDED APPS" android:key="my_apps_list">
</PreferenceCategory>

我已经尝试了无数次,但是仍然无法让它正常工作。

我该如何完成它?


我对iOS并不是很熟悉,也不清楚你想实现什么。你能否以更加直观的方式展示问题? - android developer
我已经添加了一个来自iOS的图片,我也会从我的APP中截取一张屏幕截图。 - lisovaccaro
预期行为是什么(在事件触发之前、触发时和之后)?如果与偏好无关,那么这似乎是一个简单的listView案例,您可以从API文档和Google制作的“listView世界”讲座中了解相关知识。 - android developer
我刚刚添加了几张截图展示这个行为。它实际上是有效的,只是它没有从PreferenceScreen中删除该项。 - lisovaccaro
3个回答

2

我做了一些实验,发现如果嵌套你的PreferenceScreens,实际上非常容易。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >

    <CheckBoxPreference android:title="Check it!" />

    <PreferenceScreen android:title="To the other preferences!" android:summary="I really hope this works &lt;3" >
        <EditTextPreference android:title="Edit your name" android:summary="Edit your name :)" />
        <CheckBoxPreference android:title="Accept answer" />
    </PreferenceScreen>

</PreferenceScreen>

在此输入图片描述

PS:请原谅我的硬编码字符串文字-这只是为了测试!:)


0

这看起来与我过去提出的问题非常相似:

android - showing listView in PreferenceActivity

在选择要显示的项目时,以某种方式(DB、引用等)存储它们,然后使用我找到的解决方案。

正如您所看到的,在首选项活动中使用的视图实际上是一个listView,因此在listView中放置一个listView很奇怪。你需要的是一个特殊的技巧,这就是我写过的东西。


0
请查看此问题的已接受答案: 如何从屏幕中删除Android首选项 有时,如果存在类别,您必须像那个答案所说的那样
“引用包含要删除的首选项的类别,然后从该类别中删除该首选项”
这也是您的情况吗?
希望这可以帮助到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接