В моем приложении для Android я пытаюсь решить проблему с изменением ориентации.
У меня есть основной макет, где у меня есть две кнопки. При нажатии первой кнопки (текст по умолчанию для этой кнопки - «Выбрать категорию»), появляется диалоговое окно со списком категорий, в которых категории отображаются в виде переключателей. После того, как пользователь выбирает категорию, название выбранной категории появляется на кнопке. Теперь, когда я меняю ориентацию в эмуляторе, текст кнопки снова сбрасывается.
Я использовал onSaveInstanceState (), как показано ниже.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Initialization code
categoryList=(Button)findViewById(R.id.category_selection);
if (savedInstanceState != null)
{
System.out.println("savedInstanceState---
"+savedInstanceState.getString("bundle_category_name"));
categoryName=savedInstanceState.getString("bundle_category_name");
categoryList.setText(categoryName);
}
else
{
categoryList.setText(R.string.category);
}
// remaining code
}
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
// Save selected category name
System.out.println("saving category name "+categoryName);
outState.putString("bundle_category_name", categoryName);
}
Я могу вернуть имя категории в onCreate (), sysout печатается правильно. Но он не устанавливается как текст кнопки после изменения ориентации.
Пожалуйста, дайте мне знать, если я делаю что-то не так.
Спасибо