-3
私はアンドロイドの新機能で、APIからフェッチするポスターを表示するようにコーディングしています。問題は実行後に1つのポスターのみを表示します。私にいくつかのあなたは、サーバーからの画像の一覧を表示するrecylerviewをしなければならないイメージビューですべてのイメージを表示する方法
1.poster_image.xml
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/poster"
android:layout_width="500dp"
android:layout_height="60dp" />
2.MainActivity.java
public class MainActivity extends AppCompatActivity {
ArrayList<String> moviesList = new ArrayList<>();
ImageView mImageView;
String url = "https://api.themoviedb.org/3/movie/popular?api_key=(MY API KEY)";
String image_url = "http://image.tmdb.org/t/p/w185";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.poster_image);
mImageView = (ImageView) findViewById(R.id.poster);
// Fetch Data from API
RequestQueue requestQueue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("results");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject movies = jsonArray.getJSONObject(i);
String poster = movies.getString("poster_path");
moviesList.add(poster);
Log.i("IS", String.valueOf(moviesList));
}
for (int j = 0; j < moviesList.size(); j++) {
Picasso.with(getApplicationContext())
.load(image_url + moviesList.get(j))
.into(mImageView);
Log.i("I", image_url + moviesList.get(j));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Error", "Wrong");
}
});
requestQueue.add(jsonObjectRequest);
}
}
ListViewを使用する場合はどうすればよいですか?私はアダプタが必要ですか?ありがとう – Ricky
リストビューを使用しないRecyclerViewカスタムリサイクラーアダプターを作成する –
イメージビューのリストを表示するために、リストビューまたはリサイクルビュー(推奨)を使用すると、それらのほとんどすべてのサンプルが画像のリストに表示されますので、簡単に見つけることができます – yanivtwin