#android #isenabled #android-togglebutton
#Android #isenabled #android-кнопка переключения
Вопрос:
Я только что определил переменную ToggleButton, нашел представление по идентификатору, установил для activated значение false и установил OnClickListener. В методе onClick я проверил, был ли он включен в операторе if. Если он был включен, то он должен был его зарегистрировать, но я проверил консоль и LogCat, и он ничего не отображал. Вот мой код:
tb = (ToggleButton) findViewById(R.id.onoff);
tb.setActivated(false);
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(tb.isEnabled()){
Log.d("", "activated");
}else if(!tb.isEnabled()){
Log.d("", "deactivated");
}
}
});
Я не знаю, как сделать «код внутри текста» (например, onClick должен иметь серый прямоугольник над ним).
Ответ №1:
public boolean isEnabled ()
Этот метод наследуется от представления базового класса, который в основном определяет, является ли он неподконтрольным пользователю или нет.
Вам нужно будет использовать метод IsChecked (), чтобы определить, включена кнопка переключения или выключена.
Обновите свой код следующим образом:
tb = (ToggleButton) findViewById(R.id.onoff);
tb.setActivated(false);
tb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(((ToggleButton)v).isChecked()){
Log.d("", "activated");
}else{
Log.d("", "deactivated");
}
}
});
или второй способ
в вашем XML-коде
<ToggleButton
android:id="@ id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"
android:onClick="onToggleClicked"/>
в вашей деятельности
public void onToggleClicked(View view) {
// Is the toggle on?
boolean on = ((ToggleButton) view).isChecked();
if (on) {
// Enable vibrate
} else {
// Disable vibrate
}
}
Комментарии:
1. Э … все еще не работает … LogCat по-прежнему полностью пуст.
2. обновлен ответ попробуйте первый способ … если не работает, второй способ должен работать 🙂