Java 同一按钮多次点击

Java 同一按钮多次点击,java,android,Java,Android,这个想法是,按钮可以在第一次点击时做一件事,在第二次点击时做另一件事 button_food = (Button) findViewById(R.id.foodicon_layout); button_travel = (Button) findViewById(R.id.travelicon_layout); button_fuel = (Button) findViewById(R.id.fuelicon_layout); button_fetch = (Button) findV

这个想法是,按钮可以在第一次点击时做一件事,在第二次点击时做另一件事

button_food   = (Button) findViewById(R.id.foodicon_layout);
button_travel = (Button) findViewById(R.id.travelicon_layout);
button_fuel   = (Button) findViewById(R.id.fuelicon_layout);
button_fetch  = (Button) findViewById(R.id.fetchicon_layout);

button_travel.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        // Perform action on click
        button_food.setVisibility(View.GONE);
        button_fuel.setVisibility(View.GONE);
        button_fetch.setVisibility(View.GONE);
    }
});

在给定的示例中,当单击“移动”按钮时,其他按钮将不可见。再次单击同一按钮时,我希望其他按钮再次可见。

您可以做的是检查它们的可见性,如果它们可见,则将可见性设置为“已消失”,否则将可见性设置为“可见”以供参考。请查看以下代码

  if (button_food.getVisibility()==View.VISIBLE) {
  button_food.setVisibility(View.GONE);
    } else {
         button_food.setVisibility(View.VISIBLE);
    }

if (button_fuel.getVisibility()==View.VISIBLE) {
  button_fuel.setVisibility(View.GONE);
    } else {
         button_fuel.setVisibility(View.VISIBLE);
    }

 if (button_fetch.getVisibility()==View.VISIBLE) {
         button_fetch.setVisibility(View.GONE);
    } else {
         button_fetch.setVisibility(View.VISIBLE);
    }

只需检查当前状态并相应地采取行动

public void onClick(View v) {

    // Perform action on click
    if (button_food.getVisibility() == View.VISIBLE) {
        button_food.setVisibility(View.GONE);
    } else {
        button_food.setVisibility(View.VISIBLE
    }

    if (button_fuel.getVisibility() == View.VISIBLE) {
        button_fuel.setVisibility(View.GONE);
    } else {
        button_fuel.setVisibility(View.VISIBLE
    }

    if (button_fetch.getVisibility() == View.VISIBLE) {
        button_fetch.setVisibility(View.GONE);
    } else {
        button_fetch.setVisibility(View.VISIBLE
    }
}

您可以通过获取按钮的当前可见性并切换按钮来设置其可见性

button_food   = (Button) findViewById(R.id.foodicon_layout);
button_travel = (Button) findViewById(R.id.travelicon_layout);
button_fuel   = (Button) findViewById(R.id.fuelicon_layout);
button_fetch  = (Button) findViewById(R.id.fetchicon_layout);

button_travel.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        int visibility = button_food.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE;

        // Perform action on click
        button_food.setVisibility(visibility);
        button_fuel.setVisibility(visibility);
        button_fetch.setVisibility(visibility);
    }
});
这样编写只是编写if语句的一种简单方法

int visibility;
if(button_food.getVisibility() == View.VISIBLE){
     visibility = View.GONE;
} else {
     visibility = View.VISIBLE;
}

你在找这个吗

public void onClick(View v) {

             if(visible){
                    visible=false;
                    button_food.setVisibility(View.GONE);
                    button_fuel.setVisibility(View.GONE);
                    button_fetch.setVisibility(View.GONE);
             }else{ 
                    visible=true;
                    button_food.setVisibility(View.VISIBLE);
                    button_fuel.setVisibility(View.VISIBLE);
                    button_fetch.setVisibility(View.VISIBLE);
            }
    }

如果你用数组,我觉得太简单了

Button btnArray[] = new Button[4];

    btnArray[0] = (Button) findViewById(R.id.button_food);
    btnArray[1] = (Button) findViewById(R.id.button_travel);
    btnArray[2] = (Button) findViewById(R.id.button_fuel);
    btnArray[3] = (Button) findViewById(R.id.button_fetch);


    View.OnClickListener btnListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            for (int i = 0; i < btnArray.length; i++) {
                if (btnArray[i].getId() != v.getId())
                    if (btnArray[i].getVisibility() == View.GONE)
                        btnArray[i].setVisibility(View.VISIBLE);
                    else
                        btnArray[i].setVisibility(View.GONE);
            }
        }
    };
    for (int i = 0; i < btnArray.length; i++)
        btnArray[i].setOnClickListener(btnListener);
按钮btnArray[]=新按钮[4];
btnArray[0]=(按钮)findViewById(R.id.Button\u食物);
btnArray[1]=(按钮)findViewById(R.id.Button\u travel);
btnArray[2]=(按钮)findViewById(R.id.Button\u fuel);
btnArray[3]=(按钮)findViewById(R.id.Button\u fetch);
View.OnClickListener btnListener=new View.OnClickListener(){
@凌驾
公共void onClick(视图v){
对于(int i=0;i
我认为这是一种最干净的方式:

button_food   = (Button) findViewById(R.id.foodicon_layout);
button_travel = (Button) findViewById(R.id.travelicon_layout);
button_fuel   = (Button) findViewById(R.id.fuelicon_layout);
button_fetch  = (Button) findViewById(R.id.fetchicon_layout);
private boolean visible;

button_travel.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        if(visible){
            visible=false;
            button_food.setVisibility(View.GONE);
            button_fuel.setVisibility(View.GONE);
            button_fetch.setVisibility(View.GONE);
        }else{ 
            visible=true;
            button_food.setVisibility(View.VISIBLE);
            button_fuel.setVisibility(View.VISIBLE);
            button_fetch.setVisibility(View.VISIBLE);
        }
    }
});

可见的定义在哪里?