すべての項目を削除したときに、ListView を更新しようとしています。delete 関数が呼び出されると、sqlite-tables がクリアされます。この部分は正常に動作します。しかし、リストビューを更新できません。notifyDataSetChanged() と invalidate() を試しましたが、何も機能しません。
何か案は?
public class ResultsAdapter
extends BaseAdapter {
private LayoutInflater inflater;
private ResultsTypeOneOpenHelper resultsTypeOne_db;
private ResultsTypeTwoOpenHelper resultsTypeTwo_db;
private ResultsTypeThreeOpenHelper resultsTypeThree_db;
private ArrayList<Object> results;
static class ViewHolder {
TextView text;
}
public ResultsAdapter(Context context) {
this.inflater = LayoutInflater.from(context);
resultsTypeOne_db = new ResultsTypeOneOpenHelper(context);
resultsTypeTwo_db = new ResultsTypeTwoOpenHelper(context);
resultsTypeThree_db = new ResultsTypethreeOpenHelper(context);
results = new ArrayList<Object>();
/* get results from sqlite */
if (resultsTypeOne_db.getRowCount() != 0) {
results.addAll( resultsTypeOne_db.getAllTypeOneResults() );
}
if (resultsTypeTwo_db.getRowCount() != 0) {
results.addAll( resultsTypeTwo_db.getAllTypeTwoResults() );
}
if (resultsTypeThree_db.getRowCount() != 0) {
results.addAll( resultsTypeThree_db.getAllTypeThreeResults() );
}
}
@Override
public int getCount() {
return results.size();
}
@Override
public Object getItem(int position) {
Object item = results.get(position);
return item;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
ViewHolder viewHolder;
if (rowView == null) {
rowView = inflater.inflate(R.layout.results_list_row, null);
viewHolder = new ViewHolder();
viewHolder.text = (TextView) rowView.findViewById(R.id.results_list_textView);
rowView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) rowView.getTag();
}
viewHolder.text.setText( results.get(position).toString() );
return rowView;
}
}