我知道如何从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。我该怎么办?
答案 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);