Java将<preference>从一个PreferenceScreen移动到另一个PreferenceScreen?</preference>

时间:2012-08-01 04:53:19

标签: java android

我正在尝试做类似iOS可编辑的UITableView。我有一个“添加项目”列表,如果用户单击“添加新项目”,他将被带到具有多个<Preference>元素的PreferenceScreen,点击该应该从该屏幕消失并将其添加到“添加列表” (实际上是<PreferenceCategory>),然后他们应该可以从这里删除它们或编辑它们的顺序。这与iOS可编辑列表类似。

enter image description here

这是我的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>

我已经尝试了无数次,我无法让它发挥作用。

我怎样才能完成它?

3 个答案:

答案 0 :(得分:1)

我已经进行了一些实验,当你嵌套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>

enter image description here

PS:请原谅我的硬编码字符串文字 - 它只是用于测试! :)

答案 1 :(得分:0)

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

android - showing listView in PreferenceActivity

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

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

答案 2 :(得分:0)

请查看此问题的接受答案:

How to remove Android preferences from the screen

有时,如果存在类别,则必须

  

“引用包含您要删除的偏好的类别,然后从该类别中删除该偏好”

像那里的答案那样。这不是你的情况吗?

希望这会有所帮助。