Я строю свое первое приложение, и я почти готов. (yay!) Теперь все, что мне нужно сделать, это настроить Java для onConfigurationChange, используемого при изменении ориентации, а также вытащить клавиатуру. Во-первых, проблема в том, что при изменении ориентации все стирается, потому что новый метод компоновки вводится методом setContentView. Это, конечно, имеет смысл, однако мне было интересно, есть ли способ или возможное обходное решение, что значения edittext и textview остаются постоянными при изменении ориентации/клавиатуры. Я пробовал различные вещи, такие как взятие строковых значений перед setContentView, однако я обнаружил, что это приведет только к исключению NullPointerException.Как обновить макет после onConfigurationChange?
В основном я пытаюсь сохранить значения edittext и textview в качестве ориентации или любых изменений.
Вот краткое изложение моего кода для ссылки
Это не реальный код, только резюме пФ, что я делаю.
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//do some stuff that is the core of the app. Nothing that would impact this question though
}
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
setContentView(R.layout.landscape);
// same code that was within the onCreate. Just doing stuff related to my app
}if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
setContentView(R.layout.main);
// same code that was within the onCreate. Just doing stuff related to my app
}
}
' }
И да, я пишу в своем AndroidManifest подать андроида: configChanges = «ориентация | keyboardHidden» приложение работает как и должно быть, я просто не имею текст viwes и edittexts обновляются. Спасибо!
Я делал это так, так как мой опыт программирования был низким, и единственный способ, которым я знал, переключить взгляд на вещи - это использовать новый макет. Я также подумал, что это было легче, но я думаю, что я ошибся. Это было до того, как я узнал о какой-то тактике для использования в java для изменения пользовательского интерфейса. Anyways есть какой-то метод, который я могу использовать, который будет слушать изменения в edittext/textview, и я использую эту информацию для обновления новых? – Dan
Я понимаю, что я новичок ... не волнуйся, ты получишь. Я точно не знаю, что вы просите, но я добавил небольшой пример «Активность», где я показываю или скрываю определенные 'View' в зависимости от 'ориентации' – codeMagic