0

我正在尝试更改 r=app 加载时背​​景的颜色。为此,我使用了这样的东西:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final View view= new View(getApplicationContext());
        view.post(new Runnable() {
            @Override
            public void run() {
                view.setBackgroundColor(Color.BLACK);
            }
        });
        addListenerOnButton();
    }

这不起作用。请参阅下面的模拟器屏幕截图: 在此处输入图像描述

如您所见,背景颜色仍然是白色。关于我能做些什么来纠正这个问题的任何想法?

4

3 回答 3

2

简单的。试试这个方法。

this.findViewById(android.R.id.content).setBackgroundColor(Color.BLACK);    

例如:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    this.findViewById(android.R.id.content).setBackgroundColor(Color.BLACK);
}

这里findViewById(android.R.id.content)将返回ContentView当前活动。然后你可以为这个视图设置背景。我希望这能帮到您。

于 2013-05-22T16:58:59.830 回答
0

首先,view.post()不是必须的,因为onCreate()已经在 UI 线程中运行。其次,您正在创建一个视图并设置它的背景,但您从未将视图设置到任何地方,它只是一个永远不会被绘制的对象。有2个解决方案:

任何一个:

View view= new View(this);
view.setBackgroundColor(Color.BLACK);
setContentView(view);

或者,可能更好:

setContentView(R.layout.activity_main);
View view = findViewById(R.id.root_laout); // set the root_layout in the layout xml file
view.setBackgroundColor(Color.BLACK);
于 2013-05-22T16:50:09.697 回答
0

这应该可以解决问题:

this.findViewById(android.R.id.content).setBackgroundColor(Color.BLACK);  
于 2013-05-22T17:04:51.433 回答