2012-12-04 54 views
0

我在一個新項目中使用api 2.3.3,我用我的平板電腦三星galaxy選項卡2,當我改變方向時創建一個新的活動。onConfigurationChanged在旋轉設備時不起作用

這是一個簡單的代碼,我想:

主要活動

public class MainActivity extends Activity { 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_main); 
      Log.e("TAG","ONCREATE"); 
     } 

     @Override 
     public void onConfigurationChanged(Configuration newConfig) { 
      super.onConfigurationChanged(newConfig); 
      if (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE) { 
       Log.e("TAG","LANDSCAPE"); 
      }else{ 
       Log.e("TAG","PORTRAIT"); 
      } 
     } 

清單

<uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="14" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" 
      android:configChanges="orientation|keyboardHidden|keyboard"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" />    
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

我認爲我的代碼是很好的,我已經閱讀很多例子都是一樣的。

發生了什麼事?

感謝

+0

什麼是logcat的輸出?風景或肖像還是一無所有? – sschrass

回答

2
@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) 
{ 
    super.onRestoreInstanceState(savedInstanceState); 
    if (savedInstanceState != null) 
    { 
     if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) 
     { 
      // code for portrait 
     } 
     else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) 
     { 
      // code for landscape 
     } 

    } 
} 

嘗試上面的代碼,而不是onConfigurationChanged方法,它爲我工作好。

0

嘗試刪除鍵盤& keyboardHidden字清單文件,並檢查它。像:

android:configChanges="orientation" 
1

如果你正在構建爲大於13的API,那麼你需要使用:

android:configChanges="orientation|screenSize"