0

おはようございます、わかりません、動的カスタム ベース アダプターを埋めるにはどうすればよいですか?、これは私のコードの例です。

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 で複数の異なるレイアウトを管理したいと考えています。

4

0 に答える 0