2

自定义的 PreferenceActivity 是否需要定义一个 List?

如果我没有将列表定义为与我的自定义 PreferenceActivity 关联的内容的一部分,我会收到以下 RuntimeException:

您的内容必须有一个 ID 属性为“android.R.id.list”的 ListView

我正在尝试创建一个显示两个列表的自定义 PreferenceActivity:

  1. 一个列表将选择添加到另一个列表
  2. 一个允许用户向上或向下移动项目或删除它们的列表(可能使用上下文菜单)

这样做的“首选”方式是什么?

谢谢,wTS

4

3 回答 3

1

PreferenceActivity 扩展了 ListActivity,所以我假设它需要一个 List。

当我不理解事物时,我首选的方法是使用 Source®:PreferenceActivity

编辑:

我会采取这种方法:

  1. 将 PreferenceActivity 复制到一个新类。

  2. 为您的 Activity 创建您自己的布局(查看ListActivity 文档)。向其中添加第二个 ListView。

  3. 确保一切都像原始的 PreferenceActivity 一样工作。

  4. 开始为第二个 ListView 添加代码。

于 2010-11-15T15:36:50.230 回答
1

问题是你可能使用从 xml 文件加载并使用的设置

setContentView(layoutId); ...

使用:addPreferencesFromResource(layoutId); 反而。

并且您可以跳过“Peter Knego”描述的步骤,并且可以直接使用首选项而不添加列表视图。

于 2011-02-01T15:12:57.150 回答
0

您可以将首选项添加到您的PreferenceScreen使用for语句以多次添加它

public void onCreate(Bundle savedInstanceState) {

     addPreferencesFromResource(R.xml.preferences);
     PreferenceScreen preference;
     preferenceScreen = getPreferenceScreen();
     PreferenceScreen new_preference = new Preference(this);
     new_preference.setKey("unique_key");
     new_preference.setTitle("new_title");
     preferenceSreen.addPreference(new_preference);
}
于 2012-12-28T21:42:27.983 回答