【问题标题】:Change layout color by clicking a submenu item通过单击子菜单项更改布局颜色
【发布时间】:2015-02-01 01:14:15
【问题描述】:

我是 Java 和 Android 的新手,目前我正在开发一个简单的应用程序,它有一个菜单按钮和几个子菜单项。基本上,我是通过创建这个应用来学习的。

我想做什么?我想通过单击这些子菜单项来更改主布局颜色。

无论如何:

这是我打开子菜单的菜单图标:

<item
    android:id="@+id/action_pozadine"
    android:orderInCategory="100"
    android:icon="@drawable/ic_action_picture"
    app:showAsAction="always"
    android:title="pozadine"/>

子菜单在单独的菜单 XML 中设置:

<item
    android:title="Pozadina1"
    android:id="@+id/poz_1"
    />
<item
    android:title="Pozadina2"
    android:id="@+id/poz_2"
    />

点击“action_pozadine”时,子菜单项会在弹出窗口中展开:

case R.id.action_pozadine:

        View menuItemView = findViewById(R.id.action_pozadine);
        PopupMenu popupMenu = new PopupMenu(this, menuItemView);
        popupMenu.inflate(R.menu.submenu);
        popupMenu.show();
        return true;

如何通过单击其中一个子菜单项来更改主布局的颜色?有没有可能?

我搜索了大量教程,但所有教程都带有 Button onclick 侦听器,并且您不能将 Button 放在菜单或子菜单中。

非常感谢任何帮助。


所以我设法让它工作。这是 onMenuItemClick 代码现在的样子:

@Override
public boolean onMenuItemClick(MenuItem submenu) {
    switch (submenu.getItemId()) {
        case R.id.poz_1:
            Toast.makeText(getApplicationContext(), "Pozadina 1", Toast.LENGTH_SHORT).show();                
            return true;

        case R.id.poz_2:
            Toast.makeText(getBaseContext(), "Pozadina 2", Toast.LENGTH_SHORT).show();
            return true;


    }

有谁知道如何更改布局背景颜色,或通过单击这些子菜单按钮调用布局背景的可绘制对象?

谢谢。

【问题讨论】:

标签: android layout background-color submenu


【解决方案1】:

获取您的布局:

LinearLayout layout = new LinearLayout(this);

您也可以使用 id 获取它:

LinearLayout layout = (LinearLayout)findViewById(R.id.yourLayoutId);

那么简单:

layout.setBackgroundColor(Color.RED);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多