Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在ListView中对项目进行排序?_Android_Listview - Fatal编程技术网

Android 如何在ListView中对项目进行排序?

Android 如何在ListView中对项目进行排序?,android,listview,Android,Listview,我想对我的ListView进行排序,我如何才能做到这一点?`有什么方法可以完成这项工作吗 Java_代码: String [] mplNames = retrieveMPLNames(); List<String> sortedMPLNames = Arrays.asList(mplNames); Collections.sort(sortedMPLNames); mplNames = (String[]) sortedMPLNames

我想对我的
ListView
进行排序,我如何才能做到这一点?`有什么方法可以完成这项工作吗

Java_代码:

String [] mplNames = retrieveMPLNames();
        List<String> sortedMPLNames = Arrays.asList(mplNames);
        Collections.sort(sortedMPLNames);
        mplNames = (String[]) sortedMPLNames.toArray();
        mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.savedlocationlist_layout, 
                R.id.savedLocationName, mplNames);
        mArrayAdapter.notifyDataSetChanged();
        mListView.setAdapter(mArrayAdapter);
String[]mplNames=retrieveMPLNames();
List sortedMPLNames=Arrays.asList(mplNames);
集合。排序(分类名称);
mplNames=(字符串[])sortedMPLNames.toArray();
mArrayAdapter=newarrayadapter(getApplicationContext(),R.layout.savedlocationlist_布局,
R.id.savedLocationName,mplNames);
mArrayAdapter.notifyDataSetChanged();
mListView.setAdapter(mArrayAdapter);
对上述代码的评论


现在,列表的第一个元素是以“0”开头的项,最后一个元素是以“y”开头的项,但在这两个元素之间,依次在名为“a coffee”的项之前有一个名为“Me”的项,在已排序的列表中,这怎么会发生,或者我在上面的代码中做错了什么?

对于任何
列表视图
排序,首先必须对传递给
适配器的列表或数组进行排序,然后只需刷新列表,即
适配器名称.datanotifyetchanged()
。尝试将列表转换为数组

String[] mplNames = sortedMPLNames.stream().toArray(String[]::new);

使用
Collections.sort(您的列表名)

请查看更新的代码和注释,您能告诉我,在设置适配器之后或之前应该通知我吗?如果没有修复,请发布您的retrieveMPLNames()方法代码令人惊讶的是,在名为“咖啡”的项目之前有一个名为“我”的项目吗?!发布你的设备屏幕截图如果你使用hashmap,它有两个参数key和value,“Me”可能是你案例的键值对不起,你是什么意思?
mListView=(ListView)findViewById(R.id.listView1);
        String [] mplNames = {"one","two","three","four","six","eight"};
        List<String> sortedMPLNames = Arrays.asList(mplNames);
        Collections.sort(sortedMPLNames);
        mplNames = (String[]) sortedMPLNames.toArray();
       ArrayAdapter mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.mylist, 
                R.id.list_content, mplNames);
       mListView.setAdapter(mArrayAdapter);
itr1=list12.iterator();
    while(itr.hasNext()&&itr1.hasNext())
    {
         mplnames.add(0, itr.next().toString());
         mArrayAdapter.notifyDataSetChanged();
    }