2011-08-24 3 views
6
URI imageUri = null; 

//Setting the Uri of aURL to imageUri. 
try { 
    imageUri = aURL.toURI(); 
} catch (URISyntaxException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

이 코드를 사용하여 URL을 URI로 변환합니다. imageUri를 SharedPreferences 또는 onDestroy()를 삭제하지 않을 메모리에 어떻게 저장할 수 있습니까? 나는 URL의 변치 당신이 처음에 번역 필요가 선호도 URI를 저장하려면 사용하지 않는 URI의SharedPreferences를 사용하여 URI 또는 ​​스토리지를 저장하는 방법?

답변

9

당신이 당신의에서 onCreate()에서이 같은 뭔가를해야합니다 보관 된 SharedPreferences를 사용하여 시작하려면 :

SharedPreferences myPrefs = getSharedPreferences(myTag, 0); 
SharedPreferences.Editor myPrefsEdit = myPrefs.edit(); 

나는이 그것을 저장하는 것처럼 당신이 뭔가를 할 수 있다고 생각 :

이 같은
myPrefsEdit.putString("url", imageUri.toString()); 
myPrefsEdit.commit(); 

그리고 뭔가를 검색 할 수 있습니다 :

try { 
    imageUri = URI.create(myPrefs.getString("url", "defaultString")); 
} catch (IllegalArgumentException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
0

에 대한 메모리를 사용하려는 해달라고 할 때 URI 변경 때문에 SQLite는 데이터베이스를 싶지 해달라고

getPath() 메서드를 사용하여 문자열을 반환합니다. 그런 다음 당신은 이것을 이렇게 저장할 수 있습니다.

SharedPreferences pref = getSharedPreferences("whateveryouwant", MODE_PRIVATE); 
SharedPreferences.Editor prefEditor = userSettings.edit(); 
prefEditor.putString("key", uriString); 
prefEditor.commit(); 
5

URI의 문자열 표현을 저장할 수 있습니다.

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putString("imageURI", imageUri.toString()); <-- toString() 

는 그 다음을 검색 할 Uri parse 방법을 사용합니다.

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
String imageUriString = settings.getString("imageURI", null); 
Uri imageUri = Uri.parse(imageUriString); <-- parse 
+0

그는 예제 코드에서 android.net.Uri와 같은 .parse (String) 대신 .create (String) 객체를 사용했습니다. 이것들 중 하나를 다른 것에 사용하는 것이 유익할까요? – FoamyGuy

+0

실제로 OP가 공유 환경 설정에 저장하려고했던 것이 android.net.Uri라고 가정했습니다. 그렇지 않다면, 당신의 대답은 분명히 정확한 것입니다. – Kal

+0

나는 그들이 둘 다 일할 것이라고 생각한다. 그리고 나는 결코 다른 것에 대한 어떠한 이유도 겪어 본 적이 없다. – FoamyGuy

관련 문제