У меня есть MenuItem от SherlockActionBar в моем меню, у которого есть флажок, но когда я поворачиваю устройство, флажок по-прежнему активен, но значок справа от метки не установлен.Сохранять MenuItem статус флажка при потере событий
Что я хочу достичь, так это показать, что коробка снова проверена после поворота устройства.
До сих пор я пытался исправить это с помощью SharedPreferences, flags, сохраняя «Menu» (from onCreateOptionsMenu) в переменной и искал id, onPrepareOptionsMenu, но ничего не делает то, что я хочу.
Что я сейчас делаю, это сохранить флаг состояния MenuItem на «onOptionsItemSelected», а затем «onPrepareOptionsMenu» проверить значение флага и установить проверку ... Но это вызывает еще большую проблему.
У меня нет понятия, что делать. :(
Код:
private boolean lockFlag;
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
this.menu = menu;
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_lock:
if (item.isChecked()) {
item.setChecked(false);
lockFlag = false;
} else {
item.setChecked(true);
lockFlag = true;
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
if (lockFlag) {
menu.findItem(R.id.menu_lock).setChecked(true);
} else {
menu.findItem(R.id.menu_lock).setChecked(false);
}
return true;
}
private void savePrefs() {
getSharedPreferences("LOCKBARS", MODE_PRIVATE).edit().putBoolean("lockbars", lockFlag).commit();
}
private void loadPrefs() {
this.lockFlag = getSharedPreferences("LOCKBARS", MODE_PRIVATE).getBoolean("lockbars", false);
}
EDIT:. Это вид флажка, который я использую, я не устанавливать вручную любой значок
EDIT2:
ОК, похоже, что android:configChanges="orientation|screenSize"
выполняет трюк, но останавливается, используя для ландшафтного режима и вместо этого использует defalut. И android:configChanges="orientation"
без "screenSize" ничего не делает.
Edit3:
Shameless авто шишка. Я все еще застрял. :(
Хм ... Это частично помогло, посмотрите на новое редактирование внизу страницы. – Deses