2013-07-16 45 views
0

我试图让用户更改我的应用程序的布局。如何通过点击菜单项来改变布局?

这是我的XML:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

<item 
    android:id="@+id/menuTheme" 
    android:orderInCategory="1" 
    android:showAsAction="never" 
    android:title="Theme"> 
    <menu> 
     <item 
      android:id="@+id/themeBlack" 
      android:title="Black" /> 
     <item 
      android:id="@+id/themeWhite" 
      android:title="White" /> 
    </menu> 
</item> 

<item 
    android:id="@+id/menuAbout" 
    android:orderInCategory="1" 
    android:showAsAction="never" 
    android:title="About" /> 

下面是我的模拟器截图: 这是我的菜单。

This is my menu.

点击菜单下的项目主题后,该子菜单将出现。 After clicking the item Theme under the menu, this submenu will appear

假设我想添加一个白色布局,在哪里以及如何添加代码?我在res/layout文件夹中有一个名为themewhite.XML的XML文件。我试图在项目主题中添加一个开关,但似乎并不正确。

这是我的代码:

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch(item.getItemId()) 
    { 
     case R.id.menuTheme: 
     { 
      switch(item.getItemId()) 
      { 
       case R.id.themeWhite; 
       { 
        setContentView(R.layout.themewhite); 
       } 
      } 
      break; 
     } 
     case R.id.menuAbout: 
     { 
      break; 
     } 
    } 
    return super.onOptionsItemSelected(item); 
} 

回答

1

我猜你不想设置新的布局,你想改变现有的只是可视化。

如果是这样,你应该manilpuate与您的活动的主题。首先,您需要使用样式中的值创建主题(白色等)和decalre视图属性。然后在你的听众后点击项目之一,你应该通过调用
getContext().setTheme(resid)

这里有关主题的好文章更改主题http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html

相关问题