2014-02-08 6 views
0

나는 내 uri를 저장합니다 ArrayList<Uri> imageUri = new ArrayList<Uri>();ArrayList <Uri>을 (를) 문자열로 변환하는 방법?

어떻게 문자열로 변환 할 수 있습니까? 나는 그들을 sqlite 데이터베이스에 저장할 계획이다.

갱신 :

ListView listView; 
ArrayList<Uri> imageUri = new ArrayList<Uri>(); 
ArrayAdapter<Uri> arrayAdapter; 

arrayAdapter = new ArrayAdapter<Uri>(getActivity(), android.R.layout.simple_list_item_1, imageUri); 
listView = (ListView) view.findViewById(R.id.listView1); 
listView.setAdapter(arrayAdapter); 

if (!imageUri.isEmpty()) { 

     Uri uri0 = imageUri.get(0); 
     String uri_0 = uri0.toString(); 
} 

그것이 바로이 방법을하고 있습니까? uri_0를 sqlite 데이터베이스에 저장. 이 방법으로 각 색인마다 URI를 가져올 수 있습니까?

+2

루프와 모든 URI의 캐릭터 라인 표현으로 새로운 목록을 만들 수 있습니다. 어디서 붙어 있었 니? –

+0

나는 그것이'List ' –

+0

@ JeroenVannevel이어야한다고 생각합니다. 내 질문을 업데이트하고 일부 코드를 게시했습니다 .. – Jane

답변

0

나는 단지 URI의 문자열 표현을 반환하는 URI 객체에 대해 toString() 메서드를 호출했습니다. 그 후에는 ArrayList을 반복하고 그 메소드를 호출하여 반환 값으로 필요한 모든 작업을 수행하면됩니다.

+5

'Uri' 클래스에는 이미 문자열 표현을 제공하는'toString()'이 있습니다 : https://developer.android.com/reference/android/net/Uri.html – CommonsWare

+0

사실! 나는 나의 대답을 고쳤다, 고마워! – nKn

1

간단한 for-each 루프를 사용할 수 있습니다.

모두 한 문자열에 넣으십시오.

String completeString = new String(); 
for (Uri uri: imageUri) { 
     completeString += uri.toString(); 
} 
// now you can put that String in your db or whatever you want to do with it.. 
+0

만약 내가 그 문자열을 가져 와서 이런 식으로 sqlite에 넣어 : HashMap data = new HashMap (); data.put ("imageUri", uriString); 문자열을 연결하여 하나의 열에 배치합니까? – Jane

+0

문자열을 단순히 concenated 하시겠습니까? 내 대답을 업데이트했습니다. 따라서 모든 문자열 부분을 하나의 문자열로 가져옵니다. – Endzeit

+0

루프의 문자열 연결은 StringBuilder 또는 StringBuffer를 사용하여 수행해야합니다 (스레드 안전 요구 사항에 따라 다름). – fl0w

0

가장 쉽고 가장 깨끗한 방법 (J8부터) 아마 사용 람다 : 목록을 통해

List<String> targetList = new ArrayList<String>(); imageUri.forEach(uri -> targetList.add(uri.toString()));

관련 문제