2

我知道如何从 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。我该怎么做?

4

1 回答 1

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);
于 2013-06-15T09:12:35.870 回答