gpt4 book ai didi

java - 如何通过单击菜单项来更改布局?

转载 作者:行者123 更新时间:2023-12-01 14:20:09 25 4
gpt4 key购买 nike

我正在尝试让用户能够更改我的应用程序的布局。

这是我的 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);
}

最佳答案

我猜您不想设置新布局,您只想更改现有布局的可视化。

如果是这样,您应该调整 Activity 的主题。首先,您需要使用样式中的值创建主题(白色等)和贴花 View 属性。然后在您的监听器中单击其中一项后,您应该通过调用
更改您的主题getContext().setTheme(resid)

这是一篇关于主题的好文章 http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html

关于java - 如何通过单击菜单项来更改布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17676807/

25 4 0