为列表视图设置背景

时间:2010-10-21 15:43:59

标签: java android eclipse

我有四个标签,包含四个列表视图,我想为每个列表视图设置背景,但每当我尝试添加背景时,它都会将图像放在列表视图的每个单元格中而不是列表后面。

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

android:background="@drawable/pre"

android:layout_width="fill_parent"
android:layout_height="fill_parent"

android:padding="10dp"

android:textSize="21sp">

</TextView>

我已经意识到这是因为我试图在textview中添加背景,所以它在listview中的每个单元格中添加图像,所以我尝试添加linearlayout,listview和imageview并将其放入那里的背景,但它强制关闭。我认为这是因为tabhost使用main.xml来绘制主页并且它发生冲突,所以我甚至尝试添加listview,它仍然关闭nforce,它只有在我只有textview时才能工作,我怎么能添加一个每个列表视图的背景,下面是列表视图代码;

public class prem extends ListActivity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    // Create an array of Strings, that will be put to our ListActivity
    String[] names = new String[] { "Pre"};
    ListView lv = getListView();    
    lv.setCacheColorHint(00000000);    
    lv.setAdapter(new ArrayAdapter<String>(this,
            R.layout.list_item, names));

}

2 个答案:

答案 0 :(得分:3)

好的,您的XML布局文件将在setContentView()方法中使用。您尚未发布包含TabHost的活动代码,但我假设您使用的是默认setContentView(R.layout.main);。如果你没有使用setContentView()(在ListActivity的情况下),将ListView添加到XML文件不会改变任何东西,因为它永远不会被使用。

你是正确的,因为你正在设置TextView的背景。由于您使用的是ListActivity,因此您需要使用代码设置ListView的背景。 ListView是View的子类,因此您可以使用methods from the View class为ListView设置背景资源。

例如:

ListView listView = getListView();

//set background to color
listView.setBackgroundColor(#FF888888);

//set background to Drawable
listView.setBackgroundDrawable(myDrawable);

//set background to Resource
listView.setBackgroundResouce(R.id.my_res_id);

答案 1 :(得分:0)

根据JonniBravo,添加....

如果您有一个XML布局文件,用于在活动中使用setContentView()设置视图,则可以在其中定义ListView。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/lists_view"
    android:layout_width="match_parent" 
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView 
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/paper_frame" />
</RelativeLayout>

活动可以使用

“找到它”
lv = getListView();

如上例所示,您可以使用“background”属性设置ListView的背景。像往常一样,这可以是有效的可绘制的(例如,颜色或图像)。在我的例子中,它恰好是一个9.patch图像,由Android拉伸以封闭列表,提供一个框架。

祝你好运。