嗯,我想在Android中旋轉屏幕時保存dialogFragment中包含的變量的值。我嘗試了所有可以在互聯網上找到的方法,而且他們中的任何一個都不適合我。有些人殺了我的應用程序,而其他人根本沒有做任何事情。當屏幕旋轉時,在DialogFragment中保存一個變量的值
我需要一個真實有效的方式來保存設備屏幕旋轉時重置的EditText的值。 EditText在DialogFragment中將其變爲FragmentActivity。
非常感謝你
嗯,我想在Android中旋轉屏幕時保存dialogFragment中包含的變量的值。我嘗試了所有可以在互聯網上找到的方法,而且他們中的任何一個都不適合我。有些人殺了我的應用程序,而其他人根本沒有做任何事情。當屏幕旋轉時,在DialogFragment中保存一個變量的值
我需要一個真實有效的方式來保存設備屏幕旋轉時重置的EditText的值。 EditText在DialogFragment中將其變爲FragmentActivity。
非常感謝你
我不知道如果我理解你的問題,但你可以捕捉旋轉如下:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
{
//save value
}
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//save value
}
}
如果你想你的活動不重新啓動,你應該加入到清單文件這樣的:
<activity
.....
android:configChanges="keyboardHidden|orientation|screenSize"
..... >
</activity>
設置你的片段的retaingInstance
標誌true
:
http://developer.android.com/reference/android/app/Fragment.html#setRetainInstance(boolean)
這樣可以防止重新創建Fragment實例。
還要確保你不重新創建片段的所有時間:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
if (savedInstanceState == null) {
Fragment f = new Myfragment();
f.setRetainInstance(true);
getSupportFragmentManager().beginTransaction()
.add(R.id.container, f))
.commit();
}
}
由於視圖狀態休閒活動期間,將保留和你都保持相同的碎片情況下,你並不需要保存的TextView值每時每刻。
我剛剛發現不能將這些方法自動保存到對話框中,但是這些將應用於這些對話框的活動或片段。如果我可以通過代碼解決它,將把解決方案放在這裏。謝謝
無,指的是像 '< - 語言:爪哇 - >'' @ Override' \t'公共無效的onSaveInstanceState(捆綁outState){' \t'super.onSaveInstanceState(outState );' \t'outState.putString( 「PRECIO」,''txtPrecio.getText()的toString());' \t'}' 但這種方式並沒有爲我工作,和喜歡的方式。 – MrCoquish 2014-09-04 18:06:18