Donate. I desperately need donations to survive due to my health

Get paid by answering surveys Click here

Click here to donate

Remote/Work from Home jobs

I try to open an image from my PhotoList to a new Activity in Android Studio

My application has a List of cities with sights and their photos. I can display the sights and photos of every sight on map using Retrofit. Now i am trying to click on the photo and Display it on a new (imageView) activity but i get this error: Display = NULL. HOW CAN I PASS THE URL FROM PHOTOS TO INTENT TO START THE NEW ACTIVTIY??

public class DisplayPhoto extends AppCompatActivity {
private static final String TAG = "DisplayPhoto";
ImageView Display;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_photo);
    //Log.d(TAG, "onCreate: started." );
    Display = findViewById(R.id.DisplayimageView);
    Display.setImageResource(getIntent().getIntExtra("img", 0));


public class SightsPhotosActivity extends AppCompatActivity {

private ListView listView;
private List<String> photos = new ArrayList<>();
private Intent intent;
private String sight;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_photos);
    intent = getIntent();
    sight = intent.getStringExtra("sightName");
    listView = findViewById(R.id.sights_photos);



    Retrofit retrofit = RequestService.initializeRequest().build();
    SightClient client = retrofit.create(SightClient.class);
    Call<List<Photo>> call = client.repoForPhotos(sight);

    call.enqueue(new Callback<List<Photo>>() {
        @Override
        public void onResponse(Call<List<Photo>> call, Response<List<Photo>> response) {

            CustomListPhotoView customListPhotoView ;
            List<Photo> repos = response.body();
            for(Photo photo: repos)
            {

                photos.add(photo.getImage());
            }
            customListPhotoView = new CustomListPhotoView(SightsPhotosActivity.this,photos);
            listView.setAdapter(customListPhotoView);
        }

        @Override
        public void onFailure(Call<List<Photo>> call, Throwable t) {
            Toast.makeText(SightsPhotosActivity.this,"Something sent wrong ,please re-try later...",Toast.LENGTH_SHORT).show();
        }
    });

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent(SightsPhotosActivity.this,DisplayPhoto.class);
            intent.putExtra("img", photos.get(position));
            startActivity(intent);
        }
    });
}

}

public class CustomListPhotoView extends ArrayAdapter<String>{


private List<String> img;
private Activity context;

public CustomListPhotoView(Activity context,  List<String> img) {

    super(context, R.layout.photo_listview,img);
    this.context = context;
    this.img = img;
}


@NonNull
@Override
public View getView(final int position, @NonNull View convertView, @NonNull ViewGroup parent)
{
    View r = convertView;
    ViewHolder viewHolderPhoto = null;
    if(r == null) {

        LayoutInflater layoutInflater = context.getLayoutInflater();
        r = layoutInflater.inflate(R.layout.photo_listview, null, true);
        viewHolderPhoto = new ViewHolder(r);
        r.setTag(viewHolderPhoto);
    }
    else {

        viewHolderPhoto = (ViewHolder) r.getTag();
    }


    Picasso.with(context).load(img.get(position))
            .resize(150,200)
            .centerCrop()
            .into(viewHolderPhoto.imageView);

  /*  viewHolderPhoto.imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(context, img.get(position), Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(context,DisplayPhoto.class);
            intent.putExtra("image_Url",img.get(position));
            context.startActivity(intent);
        }
    });*/
    return r;
}
class ViewHolder
{

    ImageView imageView;

    ViewHolder(View v)
    {

        imageView =  v.findViewById(R.id.imageView);

    }
}

}

Comments