私の目的は、チェックボックスが有効になっているときにリスト項目をリストの最後にプッシュすることです。私のリストアイテムはオブジェクト "タスク"です。Android - リストビューにオブジェクトを動的に追加する
ListView lv=this.getListView();
int size=lv.getCount();
Myarrayadapter adapter = new Myarrayadapter(this,getTasks());
lv.setAdapter(adapter);
lv.invalidateViews();
private List<Task> getTasks() {
List<Task> list = new ArrayList<Task>();
for(int k=0;k<taskname.length;k++)//taskname is an array of tasknames
{
list.add(new Task(taskname[k],status[k]));
return list;
}
目的は、チェックボックスは、はい、いくつかの変更(テキストの色やボタンテキスト)を作成し、最後の位置に、この変更されたビューを移動enabled.Ifであるかどうかを確認することですbelow.my Myarrayadapterクラスが示されています。
public class Myarrayadapter extends ArrayAdapter<Task> {
private final Activity context;
private final List<Task> list;
public Myarrayadapter(Activity context, List<Task> list) {
super(context, R.layout.list_item, list);
this.context = context;
this.list=list;
}
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.list_item, null, true);
final TextView text = (TextView) rowView.findViewById(R.id.label);
CheckBox checkbox = (CheckBox) rowView.findViewById(R.id.cb);
final Button btnChild = (Button) rowView.findViewById(R.id.directions);
text.setText(list.get(position).getName());
checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(isChecked)
{
text.setTextColor(Color.parseColor("#468765"));
btnChild.setText("Revert");
Task taskItem= list.get(position);
list.remove(position);
list.add(taskItem);
}
}});
return rowView;
}
私は欲しかった正確なリストアイテムを動かしていません。
ありがとうございました!!!!
それは失敗します。その他のソリューション – siraj
@siraj: 'notifyDataSetChanged();'はAdapterに属しているので、 'notifyDataSetChanged();'(変数または 'Myarrayadapter.this.notifyDataSetChanged();'を使用しないでください) –
@AdilSoomro yes adil私は彼がnotifyDataSetChanged()を呼び出す必要があると思うので、アダプタ自体でnotifyDataSetChanged()の呼び出しをする必要があるので、右かもしれません –