大神,小弟学习安卓数据库时遇到了一些问题,求大神帮助!
我是想要在一个Fragment页面里动态加载ListView,写了一个自定义的Adapter
在 onActivityCreated里面写了
adapter=new FragmentRecordAdapter(this,start, end);
listView_data.setAdapter(adapter);
在Adapter里面写了
public class FragmentRecordAdapter extends BaseAdapter {
AddDAO2 adao;
FragmentRecord f;
Cursor cursor;
public FragmentRecordAdapter(FragmentRecord fragmentRecord, String start,String end) {
// TODO Auto-generated constructor stub
this.f=fragmentRecord;
adao = new AddDAO2(f);
cursor = adao.queryAllDetail(start, end);
}
@Override
public int getCount() {
return cursor.getCount();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view = null;
if (convertView != null) {
view = convertView;//复用了回收的view 只需要直接作内容填充的修改就好了
} else {
view = LayoutInflater.from(null).inflate(R.layout.f_record_detail_lv_item_2, null);
//没有供复用的view 按一般的做法新建view
TextView tv01 = (TextView) view.findViewById(R.id.tv01);
TextView tv02 = (TextView) view.findViewById(R.id.tv02);
TextView tv03 = (TextView) view.findViewById(R.id.tv03);
TextView tv04 = (TextView) view.findViewById(R.id.tv04);
cursor.moveToPosition(position);
tv01.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.SportType)));
tv02.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.FitnessPart)));
tv03.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.FitnessContent)));
tv04.setText(cursor.getString(cursor.getColumnIndex(ActionConstants.record.Time)));
}
return view;
}
}
在AddDAO2里面:
public class AddDAO2 {
SQLiteDatabase db;
public AddDAO2(FragmentRecord f) {
// TODO Auto-generated constructor stub
db = new ActionDataHelper(null, f).getWritableDatabase();
}
想不明白该怎么解决,求大神帮助!谢谢