#android #orientation
#Android #ориентация
Вопрос:
Хай, в моем приложении calculator, когда я нажимаю на кнопку calculate, результат отображается нормально, но когда я меняю ориентацию, вычисленный результат исчезает.
Ответ №1:
Попробуйте этот код
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
и в manifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">´
<activity android:name="XXXXX"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> //this <--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
</application>
Редактировать:
Я добавил флаг screenSize. В Android> 3, если вы не добавите этот флаг, метод onConfigurationChanged вызываться не будет.
Комментарии:
1. @BBdev Я добавил новый флаг screenSize. Если вы не добавите его в Android> 3, метод не будет вызван
Ответ №2:
Пожалуйста, посмотрите этот пример о том, как сохранить состояние вашей активности с помощью пакета. Сначала вам нужно переопределить метод onSaveInstanceState.
public void onSaveInstanceState(Bundle savedInstanceState) {
TextView txtName = (TextView)findViewById(R.id.raj44);
String aString = txtName.getText().toString();
savedInstanceState.putString("Name", aString);
super.onSaveInstanceState(savedInstanceState);
}
В методе onCreate затем вы можете восстановить состояние вашего экземпляра из сохраненного пакета.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.concretetool);
if (savedInstanceState != null) {
String aString = savedInstanceState.getString("Name");
if (aString != null) {
txtName = (TextView)findViewById(R.id.raj44);
txtName.setText(aString);
}
}
}
Ответ №3:
действие перезапускается после изменения ориентации. вы должны сохранить текущие значения в bundle
(Я предполагаю, что вы имеете в виду приложение для Android)