カスタマイズされたSimpleAdapterでマップリストアイテムを削除した後にListViewアイテムを更新する方法を知っていますか?Android:カスタマイズされたSimpleAdapterのアイテム削除時にリストを更新する方法
list.remove(position)で削除リスト項目を正常に実装しましたが、list.notifyAll()関数を呼び出そうとしましたが、「java.lang.IllegalMonitorStateException:オブジェクトがロックされていませんnotifyAll()の前にスレッドによって "。
私があなたを助けてくれることを願っています。カスタムSimpleAdapterのコードは次のとおりです。
public class DeleteAdapter extends SimpleAdapter {
Context context;
List<? extends Map<String, ?>> list;
int resource;
String[] from;
int[] to;
public FDeleteAdapter(Context context, List<? extends Map<String, ?>> data,
int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
this.context = context;
this.list = data;
this.resource = resource;
this.from = from;
this.to = to;
// TODO Auto-generated constructor stub
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final View row = super.getView(position, convertView, parent);
final Button delete = (Button) row.findViewById(R.id.deletebut);
final TextView title = (TextView) row.findViewById(R.id.label);
delete.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
deleteDialog xdialog = new deleteDialog(context, "Delete? ", position) {
@Override
public boolean onOkClicked() {
list.remove(position);
list.notifyAll();
return true;
}
};
xdialog.show();
}
});
return row;
}
};
ありがとうございます。
が、それは私が「タイプから)非静的メソッドnotifyDataSetChanged(static参照できません」と表示...あなたはそれを解決する方法を私に教えることができますか? – user1082138
'DeleteAdapter.this.notifyDataSetChanged()'を使用してください。 – inazaruk
はい!それは働いている!ありがとうございました^^ – user1082138