按下图像后增大或减小值

时间:2013-12-04 13:16:32

标签: android

我有一个问题,每当我按下图像时,我的价值不会增加或减少。我已经尝试了很多方法,但检索的值仍然等于1或-1。我能做些什么来制作价值,让我们说'z'来保持价值。这就像加减。这是代码。

public void onClick(View v)
    { 
        switch(v.getId()){
        case R.id.oneImgView:
            images[0].setVisibility(View.GONE);
            images[1].setVisibility(View.VISIBLE);
            if(images[0].getVisibility() == View.GONE)
            {
                setValue(1);
            }
            display();
            break;
        case R.id.twoImgView:
            images[1].setVisibility(View.GONE);
            images[0].setVisibility(View.VISIBLE);
            if(images[1].getVisibility() == View.GONE)
            {
                setValue(-1);
            }
            display();
            break;
        case R.id.threeImgView:
            images[2].setVisibility(View.GONE);
            if(images[2].getVisibility() == View.GONE)
            {
                setValue(1);
            }
            images[3].setVisibility(View.VISIBLE);
            display();
            break;
        case R.id.fourImgView:
            images[3].setVisibility(View.GONE);
                            if(images[3].getVisibility() == View.GONE)
            {
                setValue(-1);
            }
            images[2].setVisibility(View.VISIBLE);
                            display();
            break;




        }
    }

    public void display()
    {
        int z =+ getValue();

        tView.setText(""+z);
        }


    public int getValue() {
        x=value;
        return x;
    }

    public void setValue(int value) {
        this.value = value;
    }

}

2 个答案:

答案 0 :(得分:1)

像Monsur Hossain Ton说你应该首先把z作为一个全局变量,事实上如果你不把它全局化它是本地的,每次你进入显示它是一个新的变量,创造所以没有与过去的联系。如果你做一个全局变量。 对于此示例,我将z的值设置为0以开始。 顺便说一下,你不需要在temp变量中传递这个getValue()值,你可以直接从值中获取它,这将更容易。

int z = 0;
public void onClick(View v)
{ 
    switch(v.getId())
    {
    case R.id.oneImgView:
        images[0].setVisibility(View.GONE);
        images[1].setVisibility(View.VISIBLE);
        setValueAndDisplay(1);
        break;
    case R.id.twoImgView:
        images[1].setVisibility(View.GONE);
        images[0].setVisibility(View.VISIBLE);
        setValueAndDisplay(-1);
        break;
    case R.id.threeImgView:
        images[2].setVisibility(View.GONE);
        images[3].setVisibility(View.VISIBLE);
        setValueAndDisplay(1);
        break;
    case R.id.fourImgView:
        images[3].setVisibility(View.GONE);
        images[2].setVisibility(View.VISIBLE);
        setValueAndDisplay(-1);
        break;
    }
}

public void setValueAndDisplay(int value) 
{
    this.value = value;
    display();
}

public void display()
{
    z += value;
    tView.setText(""+z);
}

答案 1 :(得分:0)

make z global

   int z;
   public void display()
   {
            z =+ getValue();

            tView.setText(""+z);
   }