как хранить значения и извлекать их при изменении ориентации? - PullRequest
1 голос
/ 22 июня 2011

Я проверил много сообщений, и согласно этому я сделал кодирование для изменения ориентации. Когда ориентация меняется, проблема в том, что я не могу получить введенные значения внутри TextViews. Может кто нибудь подскажет, где я ошибся?

Coding:

В файле манифеста для соответствующей деятельности я добавил:

android:configChanges="orientation|keyboardHidden"

В активности я добавил следующие методы:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_screen);
    //Initialized the widgets
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    //have written separate layout files for portrait and landscape
    setContentView(R.layout.home_screen); 
    //Initialized the widgets again
    retrieveSavedState();  //sets the TextViews again
}

@Override
protected void onPause() {
    super.onPause();
    saveState(); //save the TextView values
}

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    saveState();
}

@Override
protected void onResume() {
    super.onResume();
    retrieveSavedState();
}

1 Ответ

1 голос
/ 22 июня 2011
@Override
public Object onRetainNonConfigurationInstance() 
{
    final MyDataObject data = collectMyLoadedData();
    return data;
}

вышеупомянутый метод может использоваться для сохранения любого объекта для сохранения данных ...

@Override
public void onCreate(Bundle savedInstanceState)
 {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final MyDataObject data = (MyDataObject) getLastNonConfigurationInstance();
    if (data == null) {
        data = loadMyData();
    }
    ...
}

, и вы можете получить этот объект в onCreate(), который будет вызываться при изменении ориентации.После считывания данных с этого объекта вы можете использовать его там, где захотите.

http://developer.android.com/guide/topics/resources/runtime-changes.html

http://developer.android.com/guide/topics/resources/runtime-changes.html

Другие механизмы также существуют, но этолучший способ, насколько мне известно .. вы также можете использовать общие настройки для хранения и извлечения данных ...

http://saigeethamn.blogspot.com/2009/10/shared-preferences-android-developer.html

...