当前位置: 首页 > 知识库问答 >
问题:

如何在Android中更改活动主题

邹玮
2023-03-14

我是一个新的Android系统,我有一个按钮,当我点击按钮时,它会显示一个弹出菜单。
它有两个项目,白天和晚上。
当我按夜间按钮时,整个活动主题更改为黑色,文本颜色为白色,而按白天按钮时,活动主题更改为白色,文本颜色为黑色。
我有一个代码,但它只更改弹出菜单。
我如何更改活动主题。

我的代码:

first class

btn_mode = (Button) findViewById(R.id.btn_content_mode);
        btn_mode.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println("bfr calling popup class");
                PopupMenu_Mode popup_mode=new PopupMenu_Mode(context, btn_mode);
                popup_mode. Popup_Menu();
                //call_popupMode();

            }
        });



second class

public class PopupMenu_Mode extends Activity {
    PopupMenu popup_Mode;
    Context context;
    Button b;
    Activity activity;

    public PopupMenu_Mode(Context context, Button btn_mode) {
        // TODO Auto-generated constructor stub

        this.b = btn_mode;
        this.context = context;
    }

    public void Popup_Menu() {
        // TODO Auto-generated constructor stub

        System.out.println("inside popup mode class");
        popup_Mode = new PopupMenu(context, b);
        popup_Mode.getMenuInflater().inflate(R.menu.mode, popup_Mode.getMenu());
        System.out.println("show popup mode ");
        popup_Mode.show();
        popup_Mode.setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                // TODO Auto-generated method stub
                try {
                    switch (item.getItemId()) {
                    case R.id.day:

                        context.setTheme(R.style.AppThemeLight);
                        // l.setBackgroundColor(R.style.AppThemeDark);
                        break;
                    case R.id.night:
                        context.setTheme(R.style.AppThemeDark);
                    default:
                        break;
                    }
                } catch (Exception e) {
                    // TODO: handle exception
                    Toast.makeText(getApplicationContext(), "nothing",
                            Toast.LENGTH_LONG).show();
                }

                return false;

            }
        });

    }

}

style.xml

<style name="AppThemeLight" parent="android:Theme.Holo.Light">
    <item name="android:background">@color/white</item>
    <item name="android:textColor">#000000</item>
</style>
<style name="AppThemeDark" parent="android:Theme.Holo">
    <item name="android:background">@color/black</item>
    <item name="android:textColor">#FFFFFF</item>
</style>  

共有1个答案

岑鸣
2023-03-14

您可以在onCreate()中更改活动的主题:

setTheme(android.R.style.Theme);

在调用'on create()‘和'set contentview()'方法之前,必须设置主题。

 类似资料:
  • 我正在尝试更改活动主抽屉的文本颜色,但找不到更改位置。我想把它改成浅色(白色) 这是我活动抽屉里的东西。xml 我尝试在任何地方插入android:textColor,但它不起作用。

  • 问题内容: 我想更改主视图(而不是按钮或文本视图)的背景颜色,而只是通常是黑色的真实背景…我得到了以下代码: 它在的内部,但只是更改了Button的背景。 问题答案: 尝试用类似的方法创建一个方法… 然后从您的OnClickListener调用它,并传递您想要的任何颜色。

  • 我已经创建了一个类,它扩展了。在该类中,当我按下一个按钮时,我想更改一个按钮的背景,该按钮被放置在主活动中。 我试图创建一个内部类来访问Main Active对象,但我得到的是这个错误: 尝试在空对象引用上调用虚拟方法android.content.pm.Application ationInfoandroid.content.Context.getApplication ationInfo()

  • 我正在创建一个包含两个片段的活动。一个用于求和减法,另一个用于显示总值主活动包含变量(总值),如果片段中的值为总和,则变量(总值)按输入值增加,否则按输入值减少 这个变量(总数)显示在第二个片段中

  • 我想在我的应用程序中应用不同的主题。我想更改导航栏和浮动操作按钮的颜色。 现在我可以更改导航栏的颜色,但浮动操作按钮的颜色没有变化。当主题更改时,如何动态更改工厂的颜色? 风格: 绝妙的: 晶圆厂选择器: 谢谢你...

  • 我在Android Studio中做了一个项目,使用的是空活动,但这两个活动的标题还是一样的,就像图中所示: 我怎样才能把第二个活动的标题改成“形式”而不是“议程”呢?