A.Schtolc
A.Schtolc

Reputation: 37

How to get new image (from array) after start activity?

I have button which starts the same activity. How can I get next image from array, after start activity? Here is code of button

Button btnNext = (Button) dialog.findViewById(R.id.btnNext);
btnNext.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                    finish();
                    startActivity(getIntent());
                }

            });

Here is array

int[] array_images = {
            R.drawable.apple,
            R.drawable.p_dolor
    };

Upvotes: 1

Views: 84

Answers (3)

abissa
abissa

Reputation: 173

You can do this:

int index = 0;
int[] array_images = {R.id.image1, R.id.image2};
Button btnNext = (Button) dialog.findViewById(R.id.btnNext);
ImageView imageView = (ImageView)findViewById(R.id.myImage);
setImageRes(getIntent().getIntExtra());

btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               index = getIntent().getIntExtra();
               dialog.dismiss();
                finish();
                    Intent intent = new Intent(this,CallActivity.class);
                    intent.putExtra("position",index++);
            }
        });

 private void setImageRes(int position){
        imageView.setResource(array_images[position])
     }

Upvotes: 0

Aditi
Aditi

Reputation: 455

You can try the below one you have to manage array indexing for that like below:-

int index = 0;
int[] array_images = {R.id.image1, R.id.image2, R.id.image3, R.id.image4};
 Button btnNext = (Button) dialog.findViewById(R.id.btnNext);
 ImageView imageView = (ImageView)findViewById(R.id.myImage);
                    setImageRes();
 btnNext.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                    setImageRes();
                }

            });


 private void setImageRes(){
        index++;
        if(index < array_images.lenght){
            imageView.setResource(array_images[index])
        }
 }

Upvotes: 0

Neo
Neo

Reputation: 3584

Why you exactly want to restart activity every-time, You can just change your resource on button click without Restarting the activity. For example -

int index = 0;
int[] imgRes = {R.id.image1, R.id.image2, R.id.image3, R.id.image4};
    Button btnNext = (Button) dialog.findViewById(R.id.btnNext);
btnNext.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                    updateImage();
                }

            });
private void updateImage(){
    index++;
    if(index >= imgRes.lenght)
        index = 0;
    ImageView imageView = findViewById(R.id.myImage);
    imageView.setResource(imgRes[index])
}

Hope it will help :)

Upvotes: 1

Related Questions