有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

未在Arraylist中添加java项

这就是我试图将“ID”从api添加到arraylist的方式

int id;


 private List<HashMap<String, Object>> 
               getMovies(JSONArray jMovies) throws NullPointerException {


 int movieCount = jMovies.length();


 List<HashMap<String, Object>> movieList = new ArrayList<HashMap<String, Object>>();


 HashMap<String, Object> movie = null;

    //Taking each movie, parses and adds to list object
    for (int i = 0; i < movieCount; i++) {

        try {
            JSONObject getid=(JSONObject) jMovies.get(i);

            movie = getMovie(getid);
            movieList.add(movie);
            id =Integer.parseInt(getid.getString("id"));


        } catch (JSONException e) {

        }
        getNumberlist(i,id);
    }

    return movieList;
}


public ArrayList<Integer> ids=new ArrayList<Integer>();
public void getNumberlist(int i,int id)
{
    ids.add(i,id);

}

public List<Integer> getNumberslist()
{ return this.ids;
}

并尝试在Itemclick listener上获取它

MovieJSONParser mj = new MovieJSONParser();


public void onItemClick(AdapterView<?> l, View v, int position, long id) {


   Intent intent = new Intent(this,next.class);

   if(position==0) {
       int id1 = mj.getNumberslist().get(0);
       intent.putExtra("id",id1);
       startActivity(intent);
   }
    if(position==1) {
        int id1 = mj.getNumberslist().get(1);
        intent.putExtra("id",id1);
        startActivity(intent);
    }
    if(position==2) {
        int id1 = mj.getNumberslist().get(2);
        intent.putExtra("id",id1);
        startActivity(intent);
    }
    if(position==3) {
        int id1 = mj.getNumberslist().get(3);
        intent.putExtra("id",id1);
        startActivity(intent);
    }

    }

共 (1) 个答案

  1. # 1 楼答案

    首先,如果要捕获异常,至少要打印堆栈跟踪,以便更容易调试代码

    在使用jMovies获取JSONObject时。get(i),你的api数据是空的,所以你会得到索引越界异常

         for (int i = 0; i < movieCount; i++) {
    
                try {
                    JSONObject getid=(JSONObject) jMovies.get(i);
    
                    movie = getMovie(getid);
                    movieList.add(movie);
                    id =Integer.parseInt(getid.getString("id"));
    
    
                } catch (JSONException e) {
                  e.printStackTrace();
                }
                getNumberlist(i,id);
            }
    

    检查您是否在jMovies中获取数据