嗨,我不擅长Java,所以请耐心等待。我正在尝试编写一个非常简单的Android应用程序,我需要一些编码方面的帮助。
事情是,我有一台服务器自动生成.png文件,并按数字顺序将它们保存到公共目录。更新每天进行,并非详尽无遗。
无论如何,我可以将动态值分配给我的应用程序中的数组吗?
private String[] myRemoteImages = {
"http://hypotheticalurl1.png",
"http://hypotheticalurl2.png",
"http://hypotheticalurl3.png",
"http://hypotheticalurl4.png",
"http://hypotheticalurl5.png",
"http://hypotheticalurl6.png",
"http://hypotheticalurl7.png",
"http://hypotheticalurl8.png",
"http://hypotheticalurl9.png",
"http://hypotheticalurl10.png",
"http://hypotheticalurl11.png",
"http://hypotheticalurl12.png",
//...blah blah blah
// these are all dynamically created so I won't know what is the last number on the list
};
此数组最终将用于使用应用程序从我的服务器获取图像。它到目前为止工作,但只有硬编码的URL。我希望这些网址是动态的,因为图片的数量会每天都在变化。
我怀疑正则表达式在Java中运行得很好但是我再也不是专家了。想到也许在服务器端编写一个脚本,生成一个现有值列表,并以某种方式解析它与Android应用程序。
有人能指出我正确的方向吗?提前谢谢。
澄清:
在应用程序运行时,数组不必动态调整大小。
我需要一种方法来读取远程目录中现有图像的列表,并传递该信息以在运行时自动填充数组。
的解决 的
伙计们,感谢您的帮助。对不起,如果我不够清楚。
我找到了办法。基本上它很简单,就是在服务器端的shell脚本上添加一行额外的代码,以便在生成图像的同时生成现有图像URL的文本列表。
之后,我在应用程序上使用了BufferedReader和openStream的组合来将远程文本文件解析为String数组。
答案 0 :(得分:1)
感谢您的帮助。对不起,如果我不够清楚。
我找到了办法。基本上它很简单,就是在服务器端的shell脚本上添加一行额外的代码,以便在生成图像的同时生成现有图像URL的文本列表。
之后,我在应用程序上使用了BufferedReader和openStream的组合来将远程文本文件解析为String数组。
答案 1 :(得分:0)
使用数组,您可以:
但你不能:
另一方面,如果你想要一个完整的动态“数组”:使用一个列表(java.util.List)。这里的ArrayList会很有趣,甚至是Vector,因为你可能需要在这个数组周围进行一些多线程处理。使用列表,您可以添加和删除元素,大小可以变化,元素可以替换。
答案 2 :(得分:0)
在这种情况下我会使用ArrayList。您不必知道要添加的元素数量,并且最后添加元素非常简单。
private List<String> list = new ArrayList<String>();
然后只需按
添加元素list.add("http://hypotheticalurl1.png");
此致 帕特里克
答案 3 :(得分:0)
而不是使用String of String
使用ArrayList<String>
它将为您在运行时添加和删除项目提供更大的灵活性参考此链接... http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList html的
听说你可以找到关于arraylist的例子...... http://www.java2s.com/Tutorial/Java/0140_ Collections / 0160 _ArrayList.htm
希望有所帮助
答案 4 :(得分:0)
根据您的情况,您需要具备以下条件:
1-一个Web服务,它有一个方法可以获取可用图像名称列表。
2-您的Android应用程序需要一个Web服务客户端,我建议您使用 KSOAP 2,因为它广为人知且易于实现。 (如果您无法弄清楚如何在程序中使用ksoap,我可以为您提供一些示例代码)
3-您需要使用ArrayList(java.util)来保存动态大小的数组。
答案 5 :(得分:0)
嘿,你可以通过
做到这一点
ArrayList stringList = new ArrayList();
stringList.add("Item");