2

这是我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background"
android:orientation="vertical"
android:padding="15dip" >

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

现在在我的代码中,我想更改窗口的背景颜色,我这样做是这样的:

ListView listview = (ListView) findViewById(android.R.id.list);
View root = listview.getRootView();
root.setBackgroundColor(Color.parseColor("#bdbdbd"));

如果我理解正确,这应该会更改列表视图父级(在本例中为 LinearLayout)的背景颜色。但是这不起作用,我做错了什么?

4

2 回答 2

3

我认为您很困惑, getRootView() 不会为您提供 LinearLayout,而是该视图的父级。请参阅另一个问题。你应该listview.getParent()改用;请注意,它需要被铸造。

于 2013-01-10T14:47:19.510 回答
1

尝试使用getParent()代替getRootView()来获取周围的实例LinearLayout..

于 2013-01-10T14:47:28.117 回答