2011-06-22 56 views
1

我已經檢查了很多帖子,並根據我已經完成的方向變更編碼。當方向更改時,問題是我無法檢索TextView中輸入的值。任何人都可以告訴我哪裏出錯了?如何存儲值並在方向更改時檢索它?

編碼:

在用於相應的活動餘加入清單文件:

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
@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(); 
    } 
    ... 
} 

和u可以從對象,你可以用它在任何你想讀取數據後retreive中我們將調用時方向改變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

+0

上述方法並沒有幫助我!我最後使用了SharedPreference。它與...一起工作... – Mathew

相關問題