我有一个关于将微调器添加到listview标题的问题:
描述: 我有一个listview,它从XML文件中填充值(放在网上)。根据以前屏幕上的用户选择和/或XML文件中的数据,此列表可能很大。
我想在listview的顶部添加一个微调器,以便用户可以选择执行过滤操作/排序操作。该如何实现?
例如: 如果我的应用程序显示库中可用的书籍列表。微调器应该帮助用户: 1.根据书名按字母顺序排序 2.根据作者姓名按字母顺序排序 3.过滤掉与“战争”相关的书籍 4.仅筛选出与“历史”相关的书籍 5.仅筛选出与“科学”相关的书籍
当我填充listview时,XML提供了诸如“Book of Book”,“Author”,“Title”等详细信息。
问题是,如何将旋转器放在顶部和底部?根据列表视图中的书籍列表,为Spinner填充类型(战争,历史,犯罪等)的值。
我试图尽可能具有描述性。如果需要进一步的详细信息,请告诉我。
任何帮助都将受到高度赞赏。
谢谢你们!
答案 0 :(得分:0)
要将微调器放在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
一个解决方案以及我将如何为Entry创建一个自定义Java类,以便您可以接收XML文件并为每个条目实例变量或特征进行排序。然后使用此数据模型,创建一个类EntryList或EntryArray,它可以处理Entry数据对象的排序。然后有一个toStringArray()方法,它将返回一个字符串数组。通过这种方式,您可以保留数据,并允许所需的所有排序。每次单击微调器时,将调用EntryList或EntryArray中的相应方法,将新的String数组放入适配器中,并且用户将看到新的排序列表。
这可能需要消化很多,所以请阅读所有链接,看看是否可以实现它。干杯!