【问题标题】:Adding Spinner to Listview Header and popuate values dynamically将 Spinner 添加到 Listview Header 并动态填充值
【发布时间】:2012-03-01 06:42:14
【问题描述】:

我有一个关于将微调器添加到列表视图标题的问题:

  1. 我应该如何让微调器显示在列表视图标题中。
  2. 如何根据列表视图中的值动态填充此微调器中的值。

说明: 我有一个列表视图,它从 XML 文件(放在网上)填充值。根据用户在前一个屏幕上的选择和/或 XML 文件中的数据,此列表可能很大。

我想在列表视图的顶部添加一个微调器,以便用户可以选择执行过滤操作/排序操作。这应该如何实现?

例如: 如果我的应用程序显示图书馆中可用的书籍列表。微调器应帮助用户: 1.根据书名按字母顺序排序 2.按作者姓名字母排序 3. 只过滤掉与“战争”相关的书籍 4. 只过滤掉与“历史”相关的书籍 5. 只过滤掉与“科学”相关的书籍

当我填充列表视图时,XML 会提供诸如“书籍类型”、“作者”、“标题”等详细信息。

问题是,如何根据列表视图中的书籍列表将微调器放置在顶部并填充诸如类型(战争、历史、犯罪等)到微调器的值。

我试图尽可能地描述。如果需要任何进一步的细节,请告诉我。

我们将不胜感激。

非常感谢!

【问题讨论】:

    标签: android android-listview android-spinner


    【解决方案1】:

    要将微调器放在 ListView 上方,请查看此方法:http://developer.android.com/reference/android/widget/ListView.html#addHeaderView%28android.view.View%29

    或者你可以在 Activity 的父布局中放置一个关于 ListView 的自定义标题布局。 更多ListView帮助:http://www.vogella.de/articles/AndroidListView/article.html#listview_overview

    就填充微调器而言,您可以将微调器设置为您想要的任何值。在线示例中(http://developer.android.com/resources/tutorials/views/hello-spinner.html):

    String[] myValues = // Put code here for the values and size of array you want. 
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, YOUR_STRING_ARRAY_VARIABLE_HERE, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    

    作为程序员,您的工作是弄清楚如何在微调器中选择哪个项目并对 listView 进行更改。要更新列表视图中的值,请查看:update listview dynamically with adapter

    一个解决方案和我的做法是为条目创建一个自定义 Java 类,以便您可以获取 XML 文件并为每个条目提供实例变量或特征以对其进行排序。然后使用这个数据模型,创建一个可以处理条目数据对象排序的类 EntryList 或 EntryArray。然后有一个 toStringArray() 方法将返回一个字符串数组。通过这种方式,您可以保留数据,并允许您进行所有需要的排序。每次点击微调器,都会调用 EntryList 或 EntryArray 中的相应方法,在适配器中放入一个新的 String 数组,用户会看到新的排序列表。

    这可能需要消化很多,因此请阅读所有链接,看看您是否可以实现它。干杯!

    【讨论】:

    • 非常感谢 AJcodez。将尝试您的所有建议并将其标记为已关闭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多