我之前的ImageView图像的按钮不起作用

时间:2013-06-21 13:43:06

标签: java android

我有两个按钮和一个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;

        }

    }

3 个答案:

答案 0 :(得分:2)

为什么不把它作为一个功能

来做到这一点
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();
        }
 }

修改 使用a++a--的onClick方法完成增量和减量 记得开始你的int a =-1。但是,在您单击NextPicture之前,默认图片将为空 它总是更好地动态变量,即。使用++--增加而不是使用值初始化它。比如a=21。不是首选。

答案 1 :(得分:0)

试试这个:

public class MainActivity extends Activity  implements OnClickListener{

    private int[] IMAGE_IDS = { R.drawable.image1, R.drawable.image2,
        R.drawable.image3};

    int imglength=IMAGE_IDS.length;

    int img_position;

    ImageView slidingimage;


 @Override
public void onClick(View v) {
    // TODO Auto-generated method stub  


  switch (v.getId()) {

         case R.id.iv_left_arrow:

              img_position--;  

              break;                    

         case R.id.iv_right_arrow:

             img_position++;

             break;

           }

        if(img_position < 0) img_position = imglength-1;    

        if(img_position >= imglength) img_position = imglength -1;

        slidingimage.setImageResource(IMAGE_IDS[img_position]);


   }

           }

答案 2 :(得分:0)

使用

onClick(next); 

而不是

next.performClick();

并且还尝试将图像的ID保存在数组中,然后从中获取“a”值,而不是写入56 if语句。