我有两个按钮和一个 ImageView。当我单击“下一步”按钮时,它将转到可绘制文件夹中的下一个图像。但上一个按钮不起作用。不知道为什么,我觉得我的逻辑是对的。这是我的代码:
public class Photo_gallery extends Activity implements OnClickListener{
Button next,previous;
ImageView slika;
int a = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photo_gallery);
InicijalizujVarijable();
}
private void InicijalizujVarijable() {
next = (Button) findViewById(R.id.bNext);
previous = (Button) findViewById(R.id.bPrevious);
slika = (ImageView) findViewById(R.id.imageView1);
next.setOnClickListener(this);
previous.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()){
case R.id.bNext:
if (a == 0)
{
slika.setImageResource(R.drawable.p2);
a = 1;
}
else if (a == 1)
{
slika.setImageResource(R.drawable.p3);
a = 2;
}
else if (a == 2)
{
slika.setImageResource(R.drawable.p4);
a = 3;
.
.
.
.
}
else if (a == 56)
{
startActivity(new Intent("com.example.apps.MENU"));
finish();
}
break;
case R.id.bPrevious:
a--;
next.performClick();
break;
}
}
最佳答案
为什么不把它变成一个函数来做到这一点
public void onClick(View v) {
switch (v.getId()){
case R.id.bNext:
///function calling
a++;
setImage(a);
break;
case R.id.bPrevious:
if(a>0)
{
a--;
setImage(a);
break;
}
}
}
private void setImage(int a)
{
if (a == 0)
{
slika.setImageResource(R.drawable.p2);
}
else if (a == 1)
{
slika.setImageResource(R.drawable.p3);
}
else if (a == 2)
{
slika.setImageResource(R.drawable.p4);
.
.
.
.
}
else if (a == 56)
{
startActivity(new Intent("com.example.apps.MENU"));
finish();
}
}
编辑
递增和递减由 onClick 方法使用 a++
和 a--
完成
记住启动你的int a =-1
。但默认图片将为空,直到您单击 NextPicture
动态变量对你来说总是更好,即。使用 ++
或 --
增加而不是用值初始化它。例如a=21
。不优选。
关于java - 我的上一个 ImageView 图像按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236832/