我想问一下为什么这个adapter只有两个参数而且第二个参数是访问数据库之后的结果却可以写呢,难道第二个参数不应该是R.layout.什么的整型参数吗.....因为我在看别人的代码,可是他的项目可能把整个adapter.class给删了...所以不知道源码是什么了,想问一下有没有大佬知道~
部分代码如下
cursor = ssdb.rawQuery("select _id, stuId, couId, name, grade from grade inner join course" +
" on grade.couId=course.id where stuId=\"" + stuId + "\";", null);
if (cursor.moveToFirst()) {
do {
String id = cursor.getString(cursor.getColumnIndex("couId"));
String na = cursor.getString(cursor.getColumnIndex("name"));
float gr = cursor.getInt(cursor.getColumnIndex("grade"));
courses.add(new Course(na, id, gr));
} while (cursor.moveToNext());
}
sciAdapter = new StuCourInfoAdapter(this, courses);//实例一个adapter对象
final ListView listView = (ListView) findViewById(R.id.stu_cou_list);
listView.setAdapter(sciAdapter);
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Course course = courses.get(position);
chooseAlert(course, position);
return true;
}
});
public class StuCourInfoAdapter extends BaseAdapter {
private List<Course> mList;
private Context mContext
public StuCourInfoAdapter(Context context, List<Course> list) {
mList = list;
mContext=context;
}
@Override
public int getCount() {
return mList == null ? 0 : mList.size();
}
// @Override
public Object getItem(int position) {
return mList.get(position)
}
@Override
public long getItemId(int position) {
return position
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//r其他操作
}
}
这都是java的基本功了,构造函数当然可以自己任意定义了,你都new出来了还看不到源码?
public class StuCourInfoAdapter extends BaseAdapter {
private final List<Course> mList;
public StuCourInfoAdapter(Context context, List<Course> list) {
mList = list;
}
@Override
public int getCount() {
return mList == null ? 0 : mList.size();
}
//...其他操作
}