2011-06-22 31 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

相关问题