Скрыть какую-либо кнопку методом onClick в Android

#android #button #onclick #hide

#Android #кнопка #onclick #скрыть

Вопрос:

У меня есть какая-то кнопка, и я хочу, чтобы при нажатии на кнопку она выполняла некоторую деловую логику и скрывала эту кнопку, у меня есть кнопка 14, поэтому я переопределяю метод 14 onClick для этих 14 кнопок. Есть ли другой хороший способ сделать это? Я хочу переопределить метод onclick 1 раз. Пожалуйста, помогите мне. Большое спасибо.

 <Button
    android:id="@ id/btnHint01"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_above="@ id/btnHint08"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="5dp"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint08"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignLeft="@ id/btnHint01"
    android:layout_alignParentBottom="true"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint02"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_above="@ id/btnHint08"
    android:layout_toRightOf="@ id/btnHint01"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint04"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignBaseline="@ id/btnHint03"
    android:layout_alignBottom="@ id/btnHint03"
    android:layout_toRightOf="@ id/btnHint03"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint03"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_above="@ id/btnHint08"
    android:layout_toRightOf="@ id/btnHint02"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint05"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_above="@ id/btnHint08"
    android:layout_toRightOf="@ id/btnHint04"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint06"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_above="@ id/btnHint08"
    android:layout_toRightOf="@ id/btnHint05"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint07"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignBaseline="@ id/btnHint06"
    android:layout_alignBottom="@ id/btnHint06"
    android:layout_toRightOf="@ id/btnHint06"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint09"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_below="@ id/btnHint01"
    android:layout_toRightOf="@ id/btnHint01"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint10"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_below="@ id/btnHint02"
    android:layout_toRightOf="@ id/btnHint02"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint11"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_below="@ id/btnHint05"
    android:layout_toRightOf="@ id/btnHint03"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint12"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_below="@ id/btnHint04"
    android:layout_toRightOf="@ id/btnHint04"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint13"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_below="@ id/btnHint05"
    android:layout_toRightOf="@ id/btnHint05"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />

<Button
    android:id="@ id/btnHint14"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_below="@ id/btnHint06"
    android:layout_toRightOf="@ id/btnHint06"
    android:text="@string/none"
    android:textSize="20sp"
    android:textStyle="bold" />
  

Ответ №1:

для этого есть два способа. 1- Вариант переключения 2-если еще

Ответ №2:

 public class YourActivity extends Activity(or Fragment) implements View.OnClickListener{
        Button btn1,btn2,btn3;

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
            case R.id.btn_id1:
                //your some logic
                break;

            case R.id.btn_id2:
                //Your some logic
                break;
            }
        }
    } 

    //And after you init buttons set for each clickListener 
     @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            btn1=..;
            btn2=..;
            btn1.setOnClickListener(this);
            btn2.setOnClickListener(this);
        }
    }
  

Ответ №3:

Вы можете использовать swict case в onClick таком:

 @Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (checkedId) {
        case R.id.btn1:
            //your business logic
            break;

        case R.id.btn2:
            //Your businesslogic
            break;
        }
    }
});
  

Редактировать: я предположил, что ваша активность реализуется android.view.View.OnClickListener . И вы добавили это:

 btn1.setOnClickListener(this);
  

после инициализации в onCreate .

Надеюсь, это поможет.

Комментарии:

1. Здесь класс должен реализовать OnClickListener

2. Я знаю, что @Aniruddha 🙂 Я предполагал, что OP будет знать это.

Ответ №4:

Реализовать OnClickListener

открытый класс MainActivity расширяет действие, реализует OnClickListener{

public void onCreate(пакет savedInstanceState) {

 Button b1 = (Button) findViewById(R.id.b1);
Button b2 = (Button) findViewById(R.id.b2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
  

}

@Переопределить общедоступную пустоту onClick(просмотр v) {

переключить (v.getId()) {

   case R.id.b1:
     //do something
     break;
  case R.id.b2:
    //do something
    break;
 }   
  

}

Switch-case проще поддерживать, чем if-else, и эта реализация не требует создания многих переменных класса.

Ответ №5:

Вы можете реализовать OnClickListener в своей деятельности, например

     public class MainActivity extends Activity implements OnClickListener {

}
  

и переопределить

 @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId) {
        case R.id.btn1:
            //do what u need to do here
            break;

        case R.id.rb_key_mismatch:
           //do what u need to do here
            break;
        }
    }