图像未从JSON文件加载到Listview

时间:2017-10-22 18:26:18

标签: android listview jsonparser

当我将URL硬编码为ReadJSON()时,应用程序正常工作.execute(my url here);

然而,在将url更改为textinput之后,它将不会加载图像。

这是预期的结果:https://imgur.com/a/QyKG1

以下是整个文件:https://pastebin.com/e6Q5ViuS

以下是包含错误的代码:

class ReadJSON extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {
            return readURL(params[0]);
        }

        @Override
        protected void onPostExecute(String content) {
            try {

                JSONArray jsonArray = new JSONArray(content);

                for(int i =0;i<jsonArray.length(); i++){
                    JSONObject productObject = jsonArray.getJSONObject(i);
                    arrayList.add(new Product(
                            productObject.getString("photo"),
                            productObject.getString("author")

                    ));
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            CustomListAdapter adapter = new CustomListAdapter(
                    getApplicationContext(), R.layout.custom_list_layout, arrayList
            );
            lv.setAdapter(adapter);
        }
    }


    private static String readURL(String theUrl) {
        StringBuilder content = new StringBuilder();
        try {
            // create a url object
            URL url = new URL(theUrl);
            // create a urlconnection object
            URLConnection urlConnection = url.openConnection();
            // wrap the urlconnection in a bufferedreader
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
            String line;
            // read from the urlconnection via the bufferedreader
            while ((line = bufferedReader.readLine()) != null) {
                content.append(line + "\n");
            }
            bufferedReader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return content.toString();
    }
}

1 个答案:

答案 0 :(得分:0)

问题在于:

txtUrl.getText().toString();

您没有初始化txtUrl,这意味着Android不知道txtUrl是什么。您可以将其更改为:

txtUrl = (EditText) findViewById(R.id.youredittextid);
EditTextValue = txtUrl.getText().toString();