一个便签应用,实现了基本的功能,现在就是Cursor获取数据看不懂,先简单说说几个相关的文件。
NoteListActivity在onCreate中绑定了一个NoteListAdapter,此Adapter的bindView代码如下:
@Override
public void bindView(View view, Context context, Cursor cursor) {
if (view instanceof NotesListItem) {
NoteItemData itemData = new NoteItemData(context, cursor);
((NotesListItem) view).bind(context, itemData, mChoiceMode,
isSelectedItem(cursor.getPosition()));
}
}
NoteItemData类的构造函数中有一句是(其中静态常量TYPE_COLUMN=9):
mType = cursor.getInt(TYPE_COLUMN);
NotesListItem类继承自LinearLayout,其中bind方法部分代码如下:
这部分功能是,长按Item时,右边会出现CheckBox选择后可以进行删除操作,不知道if语句里面**为什么长按时data.getType() = Notes.TYPE_NOTE(Notes.TYPE_NOTE是常量0)?**
public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) {
if (choiceMode && data.getType() == Notes.TYPE_NOTE) {
mCheckBox.setVisibility(View.VISIBLE);
mCheckBox.setChecked(checked);
} else {
mCheckBox.setVisibility(View.GONE);
}
NoteItemData的getType()方法如下:
public int getType() {
return mType;
}
NoteItemData还有一个方法是getNoteType:
public static int getNoteType(Cursor cursor) {
return cursor.getInt(TYPE_COLUMN);
}
这两个方法的内容是一样的,为什么getNoteType=1,getType在长按时=0,否则=1?
在线等高手回答,研究了好几天了