这是一个简短的List活动,它调用自定义适配器来显示课堂出勤率。 我使用单击的教室rowid设置数据到达此处然后查询我的数据 DB让全班学生上课。我使用自定义适配器,因为我有一个复选框列表 以及学生姓名。无论我是使用我的适配器还是简单地在simplecursoradapter中替换(并失去我的复选框功能),我都会得到一个空指针异常。这是否发生 我单击“完成”按钮或单击后退箭头。我似乎什么也看不见。你能吗?
public class ShowStudentAttendance extends ListActivity {
private gradeBookDbAdapter mDbHelper;
private Long mRowId;
private TextView mNameText;
private String classname;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor stud;
mDbHelper = new gradeBookDbAdapter(this);
mDbHelper.open();
mRowId = (savedInstanceState == null) ? null
: (Long) savedInstanceState
.getSerializable(gradeBookDbAdapter.KEY_ROWID);
if (mRowId == null) {
Bundle extras = getIntent().getExtras();
mRowId = extras != null ? extras
.getLong(gradeBookDbAdapter.KEY_ROWID) : null;
}
if (mRowId != null) {
stud = mDbHelper.fetchClass(mRowId);
startManagingCursor(stud);
classname = stud.getString(
stud.getColumnIndexOrThrow(gradeBookDbAdapter.KEY_CLASSNAME));
String title = "Attendance for " + classname;
setTitle(title);
}
stud = mDbHelper.fetchAllStudentsClass(mRowId);
startManagingCursor(stud);
setContentView(R.layout.attendance_list);
Button doneButton = (Button) findViewById(R.id.Done);
doneButton.setOnClickListener(mAttendanceActivity);
// Create an array to specify the fields we want to display in the list (only name)
String[] from = new String[]{gradeBookDbAdapter.KEY_NAME,
gradeBookDbAdapter.KEY_ROWID};
// and an array of the fields we want to bind those fields to (in this case just text1)
int[] to = new int[]{R.id.stuname};
// Now create a simple cursor adapter and set it to display
MyDataAdapter studs =
new MyDataAdapter(this, R.layout.show_attendance, stud, from, to);
setListAdapter(studs);
}
private OnClickListener mAttendanceActivity = new OnClickListener() {
public void onClick(View v) {
setResult(RESULT_OK);
finish();
}
};
}
答案 0 :(得分:0)
您似乎没有关闭游标或数据库befe退出活动。
答案 1 :(得分:0)
糟糕。没关系。我在找错了地方。这段代码没什么问题。我只是用startActivityForResult调用活动,并且不需要也没有onActivityResult()。我把它改成了一个简单的startActivity,一切都很好。不过,谢谢你。 -