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的位置。它表示您将被重定向到同一活动。