Я использую API для получения списка изображений и не могу установить массив изображений в ListView Array Adapter. Изображение в форме String URL. Пожалуйста, посмотрите код ниже. Что я пробовал.
private void jsonParse() {
String url = "This is the API URL";
JsonObjectRequest objectRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject photos = response.getJSONObject("photos"); //photos
JSONArray jsonArray = photos.getJSONArray("photo"); //photos.photo[0]
ImageView[] im = new ImageView[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject pics = jsonArray.getJSONObject(i);
String id = pics.getString("id");
String server = pics.getString("server");
String farm = pics.getString("farm");
String secret = pics.getString("secret");
String URLs = "https://farm" + farm + ".staticflickr.com/" + server + "/" + id + "_" + secret + ".jpg";
System.out.println(URLs);
// Use Bitmap for converting the String form into Image Format
try {
Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(URLs).getContent());
imageView.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
im[i] = imageView;
}
//Below, 'im' is not readable by the ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.image_layout,im);
listView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
requestQueue.add(objectRequest);
}
ImageView [] 'im' массив не может прочитать ArrayAdapter. Может кто-нибудь помочь мне решить эту проблему?
image_layout. xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image_id"
android:contentDescription="DefaultImage"
android:src="@android:drawable/btn_star_big_on"/>
</LinearLayout>
main_activity. xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#ffffff">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="430px"
android:text="Click" />
</RelativeLayout>
<ListView
android:padding="50px"
android:id="@+id/list_view_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"
tools:visibility="visible" />
</LinearLayout>