带有asyncTask的Recyclerview适配器

时间:2015-10-15 11:47:01

标签: android-asynctask adapter android-recyclerview

我正在尝试使用url(r"^%sformList$" % OPT_GROUP_REGEX, views.formList, name=FORM_LIST), 的自定义适配器,但持有者是空的。我无法理解我错过了什么。请帮忙。

在MainActivity的AsyncTask中:

RecyclerView

自定义适配器:

@Override
    protected void onPostExecute(String result) {
        json_result = result;
        super.onPostExecute(result);
        dialog.dismiss();
        if (result == null) {
            Toast.makeText(MainActivity.this, "error getting results...", Toast.LENGTH_LONG).show();

        } else {

            try {
                JSONObject json = new JSONObject(result);
                Log.e(TAG, "create json object");

                JSONArray searchArray = json.getJSONArray("Search");
                Log.e(TAG, "Search");

                for (int i = 0; i < searchArray.length(); i++) {
                    Log.e(TAG, "run on length");
                    JSONObject searchObject = searchArray.getJSONObject(i);
                    Log.e(TAG, "create search object");
                    String title = searchObject.getString("Title");
                    Log.e(TAG, "Title" + title);
                    String type = searchObject.getString("Type");
                    Log.e(TAG, "Type" + type);
                    String year = searchObject.getString("Year");
                    Log.e(TAG, "Year" + year);
                    String imdbID = searchObject.getString("imdbID");
                    String poster = searchObject.getString("Poster");
                    Log.e(TAG, "" + result);
                    movieList.add(new Movie(title, type, year, imdbID, poster));
                    Log.e(TAG, "Add to adapter");


                }
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(MainActivity.this, "error parsing results...", Toast.LENGTH_LONG).show();
            }

            adapter.notifyDataSetChanged();
            Log.e(TAG, "Notify");

        }
    }

}

我认为问题是我的电影类是空的,但我确实在asynctask中有JSON结果......

1 个答案:

答案 0 :(得分:3)

您收到的数据,已保存在列表中 - &gt; movieList。 您是否在适配器中使用它并将适配器设置为回收器视图。

  1. 在主类中初始化回收站视图
  2. 初始化适配器并将movielist作为争论传递给创建的适配器对象。
  3. 将适配器连接到recyclerview - &gt; recyclerView.setAdapter(适配器)。
  4. 我认为这应该有用