这是我的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"));
如果我理解正确,这应该改变listview的父级的背景颜色(在这种情况下,LinearLayout)。但是这不起作用,我做错了什么?
答案 0 :(得分:3)
我觉得你很困惑,getRootView()不会让你看到LinearLayout,而是那个视图的父级。见this other question。您应该使用listview.getParent()
代替;请注意,它需要进行铸造。
答案 1 :(得分:1)
尝试使用getParent()
代替getRootView()
来获取周围LinearLayout
的实例..