Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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:对从SharedReferences检索到的数据进行排序_Android_Sorting_Sharedpreferences - Fatal编程技术网

Android:对从SharedReferences检索到的数据进行排序

Android:对从SharedReferences检索到的数据进行排序,android,sorting,sharedpreferences,Android,Sorting,Sharedpreferences,我正在尝试在Android中存储数据。我正在使用SharedReferences。我使用以下方法检索这些数据: SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE); Map<String, ?> keys = myPrefs.getAll(); for (Map.Entry<String, ?> entr

我正在尝试在Android中存储数据。我正在使用
SharedReferences
。我使用以下方法检索这些数据:

 SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
            Map<String, ?> keys = myPrefs.getAll();
            for (Map.Entry<String, ?> entry : keys.entrySet()) {
                Log.i("map values", entry.getKey());
                            //some code
 }
SharedReferences myPrefs=this.getSharedReferences(“myPrefs”,模式世界可读);
Map keys=myPrefs.getAll();
for(Map.Entry:keys.entrySet()){
Log.i(“映射值”,entry.getKey());
//一些代码
}
编辑:


但检索到的数据与插入的顺序不同。如何获得相同的订单?

将生成的
Map
复制到
SortedMap
的实现中,例如
TreeMap

如下所示(按键排序):


将生成的
Map
复制到
SortedMap
的实现中,例如
TreeMap

如下所示(按键排序):


按顺序添加属性,如下所示。。。 首先保存设置

public static void saveSettings(final Editor editor, final String [] order) {
    final String csl = toString(order);//comma separated
    editor.putString("insert_order", csl);
    for (int i = 0; i < values.length; i++) {
        editor.putString(values[i], your_value[i]);
    }
}
publicstaticvoidsavesettings(最终编辑器,最终字符串[]顺序){
最后一个字符串csl=toString(order);//逗号分隔
编辑器.putString(“插入顺序”,csl);
对于(int i=0;i
现在加载它们:

public static List<String> loadSetting(final SharedPreferences preferences) {
    final List<String> inOrder = new ArrayList<>(); 
    final String[] ordering = preferences.getString("insert_order", "").split(",");
    for (final String item : ordering) {
        final String value = (String) preferences.getString(item, "");
        inOrder.add(value);
    }
    return inOrder;
}
公共静态列表加载设置(最终SharedReferences首选项){
最终列表顺序=新的ArrayList();
final String[]ordering=preferences.getString(“插入顺序”).split(“,”);
用于(最终字符串项:订购){
最终字符串值=(字符串)首选项.getString(项“”);
按顺序添加(值);
}
按顺序返回;
}

按顺序添加属性,如下所示。。。 首先保存设置

public static void saveSettings(final Editor editor, final String [] order) {
    final String csl = toString(order);//comma separated
    editor.putString("insert_order", csl);
    for (int i = 0; i < values.length; i++) {
        editor.putString(values[i], your_value[i]);
    }
}
publicstaticvoidsavesettings(最终编辑器,最终字符串[]顺序){
最后一个字符串csl=toString(order);//逗号分隔
编辑器.putString(“插入顺序”,csl);
对于(int i=0;i
现在加载它们:

public static List<String> loadSetting(final SharedPreferences preferences) {
    final List<String> inOrder = new ArrayList<>(); 
    final String[] ordering = preferences.getString("insert_order", "").split(",");
    for (final String item : ordering) {
        final String value = (String) preferences.getString(item, "");
        inOrder.add(value);
    }
    return inOrder;
}
公共静态列表加载设置(最终SharedReferences首选项){
最终列表顺序=新的ArrayList();
final String[]ordering=preferences.getString(“插入顺序”).split(“,”);
用于(最终字符串项:订购){
最终字符串值=(字符串)首选项.getString(项“”);
按顺序添加(值);
}
按顺序返回;
}

您可以通过创建自己的比较器对地图进行排序。检查啊。您想要与插入的顺序相同的顺序吗?这样做并不容易——从文件中加载键和值时,这些信息会丢失。谢谢。这意味着我应该找到我自己的方法来做……你们可以通过创建你们自己的比较器来对地图进行排序。检查啊。您想要与插入的顺序相同的顺序吗?这样做并不容易——从文件中加载键和值时,这些信息会丢失。谢谢。这意味着我应该找到我自己的方法来做到这一点……我怎样才能按值对数据进行排序?我怎样才能按值对数据进行排序?