2011-05-18 66 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"