Android按字母顺序排序ListView

Android按字母顺序排序ListView,第1张

概述所以我正在尝试为ListView排序一个简单的ArrayAdapter.这是我尝试过的:ListViewlv;String[]months={"January","February","March","April","May","June",&quo

所以我正在尝试为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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1102229.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存