Android 安卓:当我第一次单击按钮时,数组索引没有';不显示我的第一个索引,但它显示第二个索引

Android 安卓:当我第一次单击按钮时,数组索引没有';不显示我的第一个索引,但它显示第二个索引,android,Android,我正在android上创建一个应用程序,用于查看带有声音的图像。当我第一次单击“下一步”按钮时出现问题,它没有显示带有声音的第一个索引图像,但显示了我的第二个索引。我想在第一次单击“下一步”按钮时显示我的第一个索引 public void btn_click(View v){ ImageView imageview = (ImageView)findViewById(R.id.ImageViewPreview3); if (v == btn_next) { tr

我正在android上创建一个应用程序,用于查看带有声音的图像。当我第一次单击“下一步”按钮时出现问题,它没有显示带有声音的第一个索引图像,但显示了我的第二个索引。我想在第一次单击“下一步”按钮时显示我的第一个索引

   public void btn_click(View v){
  ImageView imageview = (ImageView)findViewById(R.id.ImageViewPreview3);
  if (v == btn_next) {
          try {
              currentimageindex = (currentimageindex + 1) % IMAGE_IDS.length;
              currentsoundindex = (currentsoundindex + 1) % myMusic.length;
          } catch (Exception e) {
              Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
          }
      }
  if (v == btn_back) {
          try {
              currentimageindex = (currentimageindex + IMAGE_IDS.length - 1) % IMAGE_IDS.length;
              currentsoundindex = (currentsoundindex + myMusic.length - 1) % myMusic.length;
          } catch (Exception e) {
              Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
          }
      }
  imageview.setImageResource(IMAGE_IDS[currentimageindex]);
  mp = MediaPlayer.create(this, myMusic[currentsoundindex]);
  mp.start();
  }
}
使用equals(Object)代替==

if (v.equals(btn_next)) {
          try {
              currentimageindex = (currentimageindex + 1) % IMAGE_IDS.length;
              currentsoundindex = (currentsoundindex + 1) % myMusic.length;
          } catch (Exception e) {
              Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
          }
      }

依此类推。

然后,您可能希望首先将
currentimageindex
设置为-1,因为您正在向它添加一个(尽管如果在其他地方使用它,请小心)。或者使用一些标志来查看是否尚未显示第一个。在这种情况下,
=
有效,因为视图实际上是同一个对象。