java - 必须单击两次才能获取上一个数组元素

标签 java android

我想制作一个带有上一个和下一个按钮的图库应用。我制作了照片的数组。每当我到达最后一张照片时,我必须单击两次上一个按钮才能获取上一张照片。而且当我到达第一张照片时,我必须单击两次下一步按钮才能到达下一张照片。我的代码:

public class MainActivity extends AppCompatActivity {

    ImageView ivphoto;
    Button btnext;
    Button btprevious;
    int a=0;
    int photoarray[]={R.drawable.cat, R.drawable.dog, R.drawable.duck, R.drawable.elephant, R.drawable.monkey, R.drawable.pig, R.drawable.rabbit, R.drawable.tiger};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ivphoto = findViewById(R.id.ivphoto);
        btnext = findViewById(R.id.btnext);
        btprevious = findViewById(R.id.btprevious);

        btnext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                ivphoto.setImageResource(photoarray[a]);
                a++;
                if (a==8){
                    a=7;
                    Toast.makeText(MainActivity.this, "This is last photo", Toast.LENGTH_SHORT).show();
                }
            }
        });

        btprevious.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                ivphoto.setImageResource(photoarray[a]);
                a--;
                if(a==-1){
                    a=0;
                    Toast.makeText(MainActivity.this, "This is first photo.", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

任何人都请帮我解决这个问题。谢谢。

最佳答案

在下一个按钮中尝试此代码:

if(a == photoarray.lenght - 1)
    Toast.makeText(MainActivity.this, "This is last photo", Toast.LENGTH_SHORT).show();
else
    ivphoto.setImageResource(photoarray[++a]);

后退按钮中的这段代码:

if(a == 0)
    Toast.makeText(MainActivity.this, "This is first photo.", Toast.LENGTH_SHORT).show();
else
    ivphoto.setImageResource(photoarray[--a]);

关于java - 必须单击两次才能获取上一个数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51340263/

相关文章:

java - 完全传递值生成

java - MongoDB Java异步驱动程序replaceOne似乎不起作用

android - 如何在运行时更改 MAIN Activity

android - 实现android :button ="@drawable/checkbox" programmatically

android - 如何不使用 XML 文件而是使用 Java 将 header 和首选项对象添加到 PreferenceActivity?

java - 当我在窗口中启动 Eclipse 时如何减小 jvm 大小

java - 防止多个用户执行相同的操作

java - 需要有关 java GUI 的帮助

android - 绘制电子卡车日志数据的图形库

android - 容器如何传递给 fragment ?