2014-02-08 55 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(); 
} 

是不是做這種方式?在sqlite數據庫中存儲uri_0。這樣我會得到每個指數的每個uri?

+2

遍歷列表,並創建與每一個URI的字符串表示一個新的列表。你卡在哪裏? –

+0

我覺得應該是'List ' –

+0

@JeroenVannevel我已經更新了我的問題併發布了一些代碼.. – Jane

回答

0

我只是在您的URI對象上調用toString()方法來返回URI的字符串表示形式。之後,您只需循環使用ArrayList並調用該方法,並根據返回值執行任何您需要的操作。

+5

'Uri'類已經有'toString()'提供了一個字符串表示形式:https://developer.android.com/reference/android/net/Uri.html – CommonsWare

+0

沒錯!我更新了我的答案,謝謝! – nKn

1

你可以使用一個簡單的for-each循環。

for (Uri uri: imageUri) { 
     String uriString = uri.toString(); 
     // do whatever you want with your string 
} 

把它們放在一個字符串中。

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

你想要字符串簡單集中嗎?我已經更新了我的答案。因此,您可以在一個字符串中獲得所有的stringsparts。 – Endzeit

+0

循環中的字符串連接應該使用StringBuilder或StringBuffer完成(取決於線程安全要求)。 – fl0w

0

最簡單和乾淨的方式(因爲J8)可能是使用lambda表達式:

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

相關問題