0

我有一个使用简单光标适配器的列表视图。

在代码中创建了一个可绘制的形状 -

DrawableProvider dr = new DrawableProvider();
ShapeDrawable shDr = dr.getDrawable();

LinearLayout v = (LinearLayout)findViewById(R.id.row_packlist);
v.setBackgroundDrawable(shDr);

以下是定义列表项的布局

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

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/row_packlist"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical" >

它不起作用的原因

 LinearLayout v = (LinearLayout)findViewById(R.id.row_packlist);

返回空值。

如何务实地将可绘制对象设置为背景?

4

2 回答 2

0

如果您想为每一行设置不同的可绘制对象,您也可以在适配器的 getView 中为 ConvertView 设置背景,您可以根据适配器项的位置进行设置

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Holder holder = null;

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.layout_row, null);
            convertView.setBackgroundDrawable(shDr);
    }
于 2013-08-12T11:04:13.590 回答
0

试试这个代码 LinearLayout layout =(LinearLayout)findViewById(R.id.row_packlist); layout.setBackgroundResource(R.drawable.source);

于 2013-08-12T11:04:18.507 回答