#java #android #checkbox #togglebutton #ischecked
#java #Android #флажок #кнопка переключения #проверено
Вопрос:
Я искал в Google и на этом сайте, но не нашел рабочего ответа. В настоящее время я разрабатываю приложение для Android, и на мой взгляд, у меня есть кнопки переключения. Но я не могу проверить, проверены ли они. Была такая же проблема с флажками (после того, как это не сработало, я попробовал это с помощью кнопок переключения)
Мой просмотр XML-кода для кнопки переключения:
<ToggleButton
android:id="@ id/tglLoginStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="10px"
android:layout_y="152px"
android:textOn="Automatische Login An"
android:textOff="Automatische Login Aus"
>
</ToggleButton>
Я попробовал этот метод:
tglLoginStart = (ToggleButton) findViewById(R.id.tglLoginStart);
if(tglLoginStart.isChecked())
{
myDB.execSQL("UPDATE " MY_DB_TABLE " SET `value`='1' WHERE `name`='autologin'");
}
else
{
myDB.execSQL("UPDATE " MY_DB_TABLE " SET `value`='0' WHERE `name`='autologin'");
}
И этот метод:
tglLoginStart.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// Perform action on clicks
if (tglLoginStart.isChecked()) {
myDB.execSQL("UPDATE " MY_DB_TABLE " SET `value`='1' WHERE `name`='autologin'");
} else {
myDB.execSQL("UPDATE " MY_DB_TABLE " SET `value`='0' WHERE `name`='autologin'");
}
}
});
Но каждый раз, когда он записывает 0 в базу данных!
Есть ли у кого-нибудь идея, как получить «реальное» состояние?
Ответ №1:
Попробуйте использовать это: http://developer.android.com/reference/android/widget/CompoundButton.html#setOnCheckedChangeListener(android.widget.CompoundButton.OnCheckedChangeListener)
Обычно это должно срабатывать, когда вы устанавливаете / снимаете флажок ToggleButton
.
Надеюсь, это поможет!
Ответ №2:
Попробуйте это.
tglLoginStart.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(isChecked)
{
//do you work
}
else {
//do otherwise
}
}
}