2013-06-15 2 views
2

Я знаю, как раздувать пользовательский макет из XML, но как я могу надуть настраиваемый компонент в ArrayAdapter?Надуйте пользовательский компонент в 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; 
    } 
} 

И я хотел бы, чтобы добавить его в ListView с помощью ArrayAdapter. Как мне это сделать?

ответ

1

Создание XML и поместить внутри него MyComponent:

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

переопределять значение GetView от вашего ArrayAdapter и когда convertView является нулевым надуйте этот макет, и назначить его convertView. В противном случае вы можете определить конструктор LinearLayout, который принимает только параметр Context as и внутри getView, когда convertView имеет значение null, вы делаете

convertView = new MyComponent(mContext); 
Смежные вопросы