I don’t have any errors but still my data is not showing in android emulator, I passed it in mainactivity but still it displays blank screen,Someone help me to solve this issue. I gave internet permission to display images. Is this androidx jetpack problem because it is happening for me many times while getting information from web .Check out the code below
MainActivity
public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private String[] imageUrls = {"https://picsum.photos/seed/picsum/200/300","https://picsum.photos/id/237/200/300"}; @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG, "onCreate: onCreate method executing"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = findViewById(R.id.viewpager); ViewAdapter adapter = new ViewAdapter(this,imageUrls); viewPager.setAdapter(adapter); } }
ViewAdapter
public class ViewAdapter extends PagerAdapter { private static final String TAG = "ViewAdapter"; private Context mContext; private String[] imageUrls; public ViewAdapter(Context context, String[] imageUrls) { mContext = context; this.imageUrls = imageUrls; } @Override public int getCount() { return imageUrls.length; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view==object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = new ImageView(mContext); Picasso.get().load(imageUrls[position]).fit().centerCrop().into(imageView); Log.d(TAG, "instantiateItem: returning view"); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } } Android manifest <uses-permission android:name="android.permission.INTERNET" />
Thank you!!
Advertisement
Answer
Root cause: You forgot to add the imageView into the containing View in which the imageView will be shown.
Solution: Change your code to
@NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = new ImageView(mContext); Picasso.get() .load(imageUrls[position]) .fit() .centerCrop() .into(imageView); // Add this line container.addView(imageView); Log.d(TAG, "instantiateItem: returning view"); return imageView; }