2011-05-18 69 views
2

大家好我有一個問題。
其實我有兩個佈局佈局端口和佈局土地。
和2個屏幕。兩個屏幕都處於兩種佈局模式。
1)第一個屏幕是登錄密碼屏幕
2)第二屏幕的ListView屏幕問題在android中旋轉

現在,每當我轉動我的手機。它重新創建onCreate()方法。然後根據需要更改佈局。

現在由於召回onCreate()我的列表數據被重新生成。如何克服這個問題。請告訴我..

我甚至試過在menifest文件

android:configChanges="orientation|keyboard|keyboardHidden" 

此代碼的工作在某種意義上說,它不召回的onCreate()方法,但現在的問題是,寫了下面的代碼,它也不會自動更改佈局。 意思是如果我在縱向然後旋轉它橫向它不會改變佈局模式。 請指導我能做些什麼。

多謝提前

回答

2

保存一些價值onRetainNonConfigurationInstance方法
這樣你就可以CHEC ķgetLastNonConfigurationInstance()爲空,如果空只能做你的清單數據生成代碼

即在你的OnCreate做這樣

final Object data = getLastNonConfigurationInstance(); 

    // The activity is starting for the first time 
    if (data == null) { 
     //code to generate list data 
    } else { 
     // The activity was destroyed/created automatically 

    } 

請參閱本Faster Screen Orientation Change

-1

它只是一個黑客以你的問題,而不是把你的xml不同的文件夾中把他們唯一佈局的文件夾,使他們的名字不同,現在在代碼

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 
      if(getScreenOrientation() == 2) 
        setContentView(landscape.xml); 
      else 
        setContentView(portrait.xml); 
} 

private int getScreenOrientation() 
{ 
    return getResources().getConfiguration().orientation; 
} 

在清單

android:configChanges="orientation|keyboard|keyboardHidden"