将自定义组件扩展到ArrayAdapter

时间:2013-06-15 08:58:33

标签: android android-arrayadapter

我知道如何从XML中扩展自定义布局,但是如何将自定义组件扩展到ArrayAdapter?

这是我的组件:

public class MyComponent extends LinearLayout
{

    private EditText mText;
    private ImageView mImage;

    public MyComponent(Context context, AttributeSet attrs)
    {
        super(context, attrs);

        View.inflate(context, R.layout.cell_layout, this);
    }

    private void initComponent(){
        mText = (EditText) findViewById(R.id.lats_field);
        mImage = (ImageView) findViewById(R.id.flag_img);
    }

    public EditText getText()
    {
        return mText;
    }

    public void setText(EditText mText)
    {
        this.mText = mText;
    }

    public ImageView getImage()
    {
        return mImage;
    }

    public void setImage(ImageView mImage)
    {
        this.mImage = mImage;
    }
}

我想使用ArrayAdapter将它添加到ListView。我该怎么办?

1 个答案:

答案 0 :(得分:1)

创建一个xml并将其放入MyComponent:

<com.package.MyComponent
     android:layout_with="fill_parent"
     android:layout_heigth="wrap_content"
 />

从ArrayAdapter覆盖getView,当convertView为null时,将此布局展开,并将其分配给convertView。否则你可以定义LinearLayout的构造函数,它只接受Context作为参数,并且在getView内部,当convertView为null时你做

convertView = new MyComponent(mContext);