Java 启动活动后如何(从阵列)获取新映像?

Java 启动活动后如何(从阵列)获取新映像?,java,android,arrays,Java,Android,Arrays,我有一个启动相同活动的按钮。启动活动后,如何从阵列中获取下一幅图像?这是按钮的代码 Button btnNext = (Button) dialog.findViewById(R.id.btnNext); btnNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {

我有一个启动相同活动的按钮。启动活动后,如何从阵列中获取下一幅图像?这是按钮的代码

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

            });
这是一个数组

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

为什么每次都要重新启动活动,只需单击按钮即可更改资源,而无需重新启动活动。比如说-

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])
}

希望它能有所帮助:)

您可以尝试以下方法,您必须管理数组索引,如下所示:-

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])
        }
 }
int索引=0;
int[]数组_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(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
dialog.dismise();
setImageRes();
}
});
私有void setImageRes(){
索引++;
if(索引
您可以执行以下操作:

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])
     }

带图像的数组在哪里?@Sree刚刚添加,它是默认的图像数组。完全有必要通过调用
finish()重新启动活动-如果您旋转屏幕,并且作为正常生命周期的一部分重新创建活动,会发生什么情况。你能不能不使用按钮和一些逻辑循环浏览图像,然后在
onSaveInstanceState
中保存数组中的位置(要显示的图像)并在
onCreate
中恢复该图像?@MarkKeen这是一段代码,我必须使用finish();具有startActivity(getIntent());感谢它的工作,但是有没有办法将updateImage()结合起来;和startActivity(getIntent());?是的,您可以这样做,但重新启动活动不是一个好的代码实践。因为重新启动活动会创建另一个活动实例,这将占用额外的内存,用户体验也将不好。您可以在不重新启动活动的情况下执行所有操作,那么最好不重新启动活动:)CallActivity?我只使用一个活动将您正在使用的活动的名称保留在CallActivity的位置。它表示您将被重定向到同一活动。