【问题标题】:Cant add item to Arraylist<String>无法将项目添加到 Arraylist<String>
【发布时间】:2017-01-06 18:22:10
【问题描述】:

我想向我的 Arraylist“eventPicture”添加一个项目。

public class Main extends AppCompatActivity{
...
ArrayList<String> eventPicture = new ArrayList<String>(); 
protected void onCreate(Bundle savedInstanceState) {
...
String url = "https://developer.android.com/static/images/android_logo.png";
eventPicture.add(0, url);

上面的工作正常,但我想用 for 循环在另一种方法中添加 url...

 private void showEvents(String response){
    try{
        JSONObject jsonObject = new JSONObject(response);
        events = jsonObject.getJSONArray(Constants.JSON_ARRAY);
        for(int i = 0; i <= events.length(); i++){
        ...
        String url = (Constants.URL_GET_SPECIAL_EVENTS_PICTURE + image);
        eventPicture.add(i, url);
       }

我有一个 json 对象,其中包含 mysql 数据库中的数据。一切正常,但我无法将项目添加到我的数组列表(eventPicture)

非常感谢您的回复。

【问题讨论】:

  • 有什么问题?为什么不能添加它们?
  • 错误是什么?
  • 提供完整代码

标签: java android arraylist


【解决方案1】:

改变

 for(int i = 0; i <= events.length(); i++)

 for(int i = 0; i < events.length(); i++)

【讨论】:

    【解决方案2】:

    您的第二个代码一遍又一遍地添加相同的网址。
    您必须将您的字符串 url 分配给 events.getString("whatever JSON key here")。您还可以在不检索数据的情况下循环事件。

    这是您的函数的重新设计版本。我没有足够的细节来填写整个脚本,但您应该可以从这里解决问题。

    private void showEvents(String response) {
        try{
            JSONArray urls = response.getJSONArray("URLs");
            for(int i = 0; i < urls.length(); i++) {
                JSONObject jsonObject = urls.getJSONObject(i);
                String url = events.getString("whatever JSON key");
                eventPicture.add(url);
            }
        }
    }
    

    【讨论】:

    • @JonasNiedermair 已更新代码。尝试调整您的 JSON 响应以更好地适应您的脚本。注意:response.getJSONArray 中的“URLs”指的是 JSON 响应的标头。
    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多