
所以我正在尝试为ListVIEw排序一个简单的ArrayAdapter.这是我尝试过的:
ListVIEw lv;String[] months = { "January", "February", "march", "April", "May", "June", "July", "August", "September", "October", "November", "December"};ArrayAdapter<String> adapter;ArrayList<String> List;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); lv = (ListVIEw) findVIEwByID(R.ID.ListVIEw1); lv.setFastScrollEnabled(true); adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, months); lv.setAdapter(adapter);}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true;}@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) { // Todo auto-generated method stub switch (item.getItemID()) { case R.ID.sortasc: List = new ArrayList<String>(Arrays.asList(months)); Collections.sort(List); for (int i = 0; i < List.size(); i++) { System.out.println(List.get(i)); } adapter.clear(); adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, List); adapter.notifyDataSetChanged(); return true; case R.ID.sortdesc: return true; default: return super.onoptionsItemSelected(item); }}但我得到UnsupportedOperationException,这有什么问题?我真的需要帮助.提前致谢!
解决方法:
在对项目进行排序后,您没有调用setAdapter(适配器).
使用如下
adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, List);lv.setAdapter(adapter);adapter.notifyDataSetChanged();代替
adapter.clear(); // Useless adapter = new ArrayAdapter<String>(this, androID.R.layout.simple_List_item_1, List);adapter.notifyDataSetChanged(); 总结 以上是内存溢出为你收集整理的Android按字母顺序排序ListView全部内容,希望文章能够帮你解决Android按字母顺序排序ListView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)