2014-02-17 30 views
1

我在我的应用程序菜单中有一个按钮,通过点击该按钮将会旋转..但是当我关闭应用程序并重新打开应用程序时,它不旋转,因为我没有离开它。SharedPreferences和Rotation

我想存储和检索方向SharedPreferences。 我已经尝试了很多例子,但其中没有一个实际上帮助了我。

这里是我的菜单代码:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    /** Rotation */ 
    case R.id.menuRotate: 
     SharedPreferences preferences = PreferenceManager 
       .getDefaultSharedPreferences(this); 
     if (preferences.getBoolean("orientation", true)) { 
      if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { 
       setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
      } 
     } else { 
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
     } 
    } 

    return false; 
} 

我没有在我的onCreate:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

} 

非常感谢球员提前

+1

您的代码保存方向在哪里? – Phil

+0

在menuRotate中,您应该保存方向(在应用之前或之后),并且在onCreate中您应该装入它(并相应地应用它)。 –

+0

我不知道该怎么做......这就是为什么我要求!我知道如何用字符串来做....我在onPause中这样做了... String ipe = InputPrice.getText()。toString(); \t \t String ipt = InputPercent.getText()。toString(); \t \t Editor editor = sharedpreferences.edit(); \t \t editor.putString(Price,ipe); – user3051834

回答

2
case R.id.menuRotate: 
    SharedPreferences preferences = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    Editor editor = preferences.edit(); 
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     editor.putInt("orientation", ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } else { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
     editor.putInt("orientation", ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 
    editor.commit(); 
    break; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    SharedPreferences preferences = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    int orientation = preferences.getInt("orientation", -1); 
    if(orientation != -1){ 
     setRequestedOrientation(orientation); 
    } 

} 

希望这有助于。

+0

非常感谢...它确实有效。 – user3051834