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

相关问题