おはようございます、わかりません、動的カスタム ベース アダプターを埋めるにはどうすればよいですか?、これは私のコードの例です。
public class Row{
private Context context;
private CheckBox checkbox;
private String kind;
public Row(Context context, String kind){
this.context = context;
this.kind=kind;
}
public start(){
checkbox = new CheckBox(context);
}
public View getView(){
View ch=getCheckbox();
return ch;
}
public CheckBox getCheckbox(){
return checkbox;
}
public String getKind(){
return kind;
}
}
public class Adapterd extends baseAdapter{
private Context context;
private ArrayList<Line> info;
public Adapterd(Context context, ArrayList info){
this.info=info;
this.context=context;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(info.get(position).getKind().equalsIgnoreCase("text")){
vi = inflater.inflate(R.layout.adaptador_blank, null);
}else{vi = inflater.inflate(R.layout.adaptador_checkbox, null);
checkLayout = (RelativeLayout) vi.findViewById(R.id.checkLayout);
checkLayout.addView(info.get(position).getCheckbox());
}
}
return vi;
}
}
public class Start{
private ListView content;
public void process(){
ArrayList<Line> l = new ArrayList<Line>();
l.add(new Line(this, "checkbox"));
l.add(new Line(this, "text"));
Adapterd adapt = new Adapterd(this, l);
content = (ListView) findViewById(R.id.layout2);
content.setAdapter(adapt);
}
}
多くのチェックボックスを追加すると、それらが画面ビューの下にあるときに値が消去され、フィールドが切り替わり、繰り返され、Specified child already has a parent here:checkLayout.addView(info.get(position) が表示されます。 getCheckbox()); 私は推測する。
baseAdapter で複数の異なるレイアウトを管理したいと考えています。