Java 设置SharedReference时出现问题,不确定是否存在问题

Java 设置SharedReference时出现问题,不确定是否存在问题,java,android,sharedpreferences,Java,Android,Sharedpreferences,我需要以下代码将一些数据保存到SharedReferences文件: // Assign external resources SaveButton = (Button)findViewById(R.id.button6); // Set the listener for the interact button SaveButton.setOnClickListener(new OnClickListener() {

我需要以下代码将一些数据保存到SharedReferences文件:

        // Assign external resources
        SaveButton = (Button)findViewById(R.id.button6);       

        // Set the listener for the interact button
        SaveButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


                SharedPreferences allMaps = getSharedPreferences("allMaps", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = allMaps.edit();

                SharedPreferences currentMap = getSharedPreferences("currentMap", Context.MODE_PRIVATE);

                String currentMapName = currentMap.getString("MapName", "");

                Map<String,?> keys = allMaps.getAll();
                for(Map.Entry<String,?> entry : keys.entrySet()){
                    //delete objects with currentMap MapName
                    if (entry.getKey().toString().contains(currentMapName)) {
                        editor.remove(entry.getKey().toString());
                    }
                 }
                //put mapname here
                editor.putString("MapName" + currentMapName, currentMapName);

                //put objects from arrays into allMaps
                //need reference of mindMapView view object
                MindMapView mindMapView = (MindMapView)findViewById(R.id.MindMapView);

                for (int i = 0; i < mindMapView.mindMapArrayListLabels.size(); i++) {
                    editor.putString(currentMapName + "Label" + i, mindMapView.mindMapArrayListLabels.get(i));
                }
                for (int i = 0; i < mindMapView.mindMapArrayListImgs.size(); i++) {
                    editor.putInt(currentMapName + "Image" + i, mindMapView.mindMapArrayListImgs.get(i));
                }

                editor.commit();
            }

        });
//分配外部资源
SaveButton=(按钮)findViewById(R.id.button6);
//为“交互”按钮设置侦听器
SaveButton.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
SharedReferences allMaps=GetSharedReferences(“allMaps”,Context.MODE\u PRIVATE);
SharedReferences.Editor=allMaps.edit();
SharedReferences currentMap=GetSharedReferences(“currentMap”,Context.MODE\u PRIVATE);
字符串currentMapName=currentMap.getString(“MapName”,即“”);
Map keys=allMaps.getAll();
for(Map.Entry:keys.entrySet()){
//使用currentMap MapName删除对象
if(entry.getKey().toString()包含(currentMapName)){
删除(entry.getKey().toString());
}
}
//把地图名放在这里
编辑器.putString(“MapName”+currentMapName,currentMapName);
//将数组中的对象放入allMaps
//需要mindMapView视图对象的引用
MindMapView MindMapView=(MindMapView)findViewById(R.id.MindMapView);
对于(int i=0;i

由于某种原因,它不起作用。我确实在其他地方引用了该文件,但在这些地方它似乎运行良好。

您可以使用PublicSharedReferences类作为答案。这对我来说非常有效。希望这有帮助