【发布时间】:2015-04-10 03:54:44
【问题描述】:
在我的应用程序中,我尝试在 listView 中按 Alphabetally 顺序对 Name 进行排序。从 Local Database 中成功获取值。请问我知道什么是实现我的目标的正确方法?我没有找到任何合适的解决方案。请帮帮我。
我的代码在下面
// Declare this
ArrayList < HashMap < String, Object >> Results;
ArrayList < HashMap < String, Object >> ValuesSpeciality;
public CustomAdapterSpecialityActivity adapterCustom;
//get speciality list from local db and show on listview
public void SpecialitiesOnList() {
HashMap < String, Object > temp;
List < TaxonomyObjects > contacts = db.getAllTaxonomy();
for (TaxonomyObjects cn: contacts) {
temp = new HashMap < String, Object > ();
temp.put("provider", "" + cn.getDisplayName());
temp.put("tvTaxonomyCode", "" + cn.getTaxonomyCode());
System.out.println(temp);
ValuesSpeciality.add(temp);
}
//searchResults=originalValuesSpeciality initially
Results = new ArrayList < HashMap < String, Object >> (ValuesSpeciality);
adapterCustom = new CustomAdapterSpecialityActivity(this, R.layout.list_item_service, searchResults);
lv.setAdapter(adapterCustom);
adapterCustom.notifyDataSetChanged();
for (int i = 0; i < adapterCustom.getCount(); i++) {
HashMap < String, Object > hm = (HashMap < String, Object > ) adapterCustom.getItem(i);
hm.put("position", i);
}
}
结果我的 Logcat 显示了这个
{Code=204D00000X, provider=Neuromusculoskeletal Medicine & OMM}
{Code=204F00000X, provider=Transplant Surgery}
{Code=204R00000X, provider=Electrodiagnostic Medicine}
{Code=207K00000X, provider=Allergy & Immunology}
{Code=204E00000X, provider=Oral & Maxillofacial Surgery}
我试图显示供应商姓名Alphabetically订单。
【问题讨论】:
-
您不对哈希映射进行排序。哈希映射本质上是未排序的——它使用哈希表,这是一种无序数据类型。如果要对数据进行排序,请使用合适的数据结构,例如列表或树。
标签: android arraylist hashmap adapter