2014-09-02 1 views
0

나는 수출에 노력하고 내가 전에 여기에 질문을 내 장치에서 된 SharedPreferences 파일을 가져오고 난 사람의 예제 코드를 보았다하지만 난 "항목"에 문제가있어 : 그것은 나에게 주어진 :SharedPreferences 파일을 가져오고 내보내는 방법은 무엇입니까?

DropBoxManager.Entry 유형은 일반적이지 않습니다. 이 인수 <String, ?>

private boolean saveSharedPreferencesToFile(File dst) { 
     boolean res = false; 
     ObjectOutputStream output = null; 
     try { 
      output = new ObjectOutputStream(new FileOutputStream(dst)); 
      SharedPreferences pref = context.getSharedPreferences(MySharedPreferences.MY_TEMP, 1); 

      output.writeObject(pref.getAll()); 

      res = true; 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     }finally { 
      try { 
       if (output != null) { 
        output.flush(); 
        output.close(); 
       } 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 
     return res; 
    } 

    @SuppressWarnings({ "unchecked" }) 
    private boolean loadSharedPreferencesFromFile(File src) { 
     boolean res = false; 
     ObjectInputStream input = null; 
     try { 
      input = new ObjectInputStream(new FileInputStream(src)); 
       Editor prefEdit = context.getSharedPreferences(MySharedPreferences.MY_TEMP, 1).edit(); 
       prefEdit.clear(); 
       Map<String, ?> entries = (Map<String, ?>) input.readObject(); 
       for (Entry<String, ?> entry : entries.entrySet()) { 
        Object v = entry.getValue(); 
        String key = entry.getKey(); 

        if (v instanceof Boolean) 
         prefEdit.putBoolean(key, ((Boolean) v).booleanValue()); 
        else if (v instanceof Float) 
         prefEdit.putFloat(key, ((Float) v).floatValue()); 
        else if (v instanceof Integer) 
         prefEdit.putInt(key, ((Integer) v).intValue()); 
        else if (v instanceof Long) 
         prefEdit.putLong(key, ((Long) v).longValue()); 
        else if (v instanceof String) 
         prefEdit.putString(key, ((String) v)); 
       } 
       prefEdit.commit(); 
      res = true;   
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     }finally { 
      try { 
       if (input != null) { 
        input.close(); 
       } 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 
     return res; 
    } 

답변