#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;
}
}