2013-01-22 35 views
0

在我的應用我只是重寫方法onConfigurationChanged方法如下onConfigurationChanged(配置NEWCONFIG)不調用

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    System.out.println("Configuration Changed"); 
    Configuration c = getResources().getConfiguration(); 

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) { 
     // portrait 

    } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     // landscape 

    } 
} 

給出但當屏幕方向把它叫做不beeing調用。

在清單我的活動是這樣

<activity 
     android:name=".MainActivity" 
     android:configChanges="orientation" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

onConfigurationChanged在MainActivity?當您更改方向時,MainActivity是否可見? – njzk2

+0

您是否已完全卸載,因爲您已添加此屬性? – njzk2

+0

你試過了什麼?有幾個與你的問題有關的答案。沒有幫助? – Leonidos

回答

2

它不叫super.onConfigurationChanged(newConfig);因此該方法成爲

@Override 
public void onConfigurationChanged(Configuration newConfig) { 

    super.onConfigurationChanged(newConfig); 

    System.out.println("Configuration Changed"); 
    Configuration c = getResources().getConfiguration(); 

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) { 
    // portrait 
    } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    // landscape 
    } 

} 

和清單還加入android:configChanges="orientation|screenSize"

感謝SSS :-)

+0

標記爲您接受的答案.. – SSS

+0

它需要2天接受我自己的答案 – Kamalone

相關問題