林亭旭代码标注

ltx_branch
yfyl1005 2 years ago
parent 8c623ac3b7
commit 11b7687aea

@ -758,7 +758,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
/* (non-Javadoc)
* @see android.app.Activity#onContextItemSelected(android.view.MenuItem)
* menu
* menu
*/
@Override
public boolean onContextItemSelected(MenuItem item) {
@ -972,21 +972,27 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
/**
*
*/
private void startQueryDestinationFolders() {
private void startQueryDestinationFolders()
//于查询目标文件夹列表
{
String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?";
selection = (mState == ListEditState.NOTE_LIST) ? selection:
"(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,
//首先根据当前 Notebook 的状态(是笔记列表还是文件夹列表),初始化查询条件 selection。
// 当 mState 为 ListEditState.NOTE_LIST 时,查询条件为 NoteColumns.TYPE=? AND NoteColumns.PARENT_ID<>? AND NoteColumns.ID<>?
// 否则在查询笔记时还需要查询根文件夹,查询条件变为 (NoteColumns.TYPE=? AND NoteColumns.PARENT_ID<>? AND NoteColumns.ID<>?) OR (NoteColumns.ID=?)。
mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,//标识该次查询任务
//调用 mBackgroundQueryHandler 的 startQuery() 方法执行异步查询
//传入查询结果的 token
null,
Notes.CONTENT_NOTE_URI,
FoldersListAdapter.PROJECTION,
selection,
Notes.CONTENT_NOTE_URI,//查询 URI
FoldersListAdapter.PROJECTION,//查询需要的列名数组
selection,// selection 中占位符的实际值
new String[] {
String.valueOf(Notes.TYPE_FOLDER),
String.valueOf(Notes.ID_TRASH_FOLER),
String.valueOf(mCurrentFolderId)
},
},//排序方式,按修改日期倒序排列
NoteColumns.MODIFIED_DATE + " DESC");
}
@ -996,20 +1002,32 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
* 便ActionModeContextMenu
* ActionMOdeContextMenu
*/
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (view instanceof NotesListItem) {
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
//列表项的长按事件处理代码
{
if (view instanceof NotesListItem)
//判断该列表项是否属于 NotesListItem 类型
{
mFocusNoteDataItem = ((NotesListItem) view).getItemData();
if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) {
if (mNotesListView.startActionMode(mModeCallBack) != null) {
//将该列表项所对应的笔记数据项NoteDataItem赋值给 mFocusNoteDataItem 变量
if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode())
//判断当前选中的笔记类型是否为 TYPE_NOTE并且当前未处于多选模式
{
if (mNotesListView.startActionMode(mModeCallBack) != null)
//调用 startActionMode() 方法启动多选模式,并通过回调方法 mModeCallBack.onItemCheckedStateChanged() 将该笔记的选择状态设置为已选择
{
mModeCallBack.onItemCheckedStateChanged(null, position, id, true);
//调用 performHapticFeedback() 方法发出震动反馈以提醒用户确认已进入多选模式
mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
} else {
Log.e(TAG, "startActionMode fails");
Log.e(TAG, "startActionMode fails");//如果启动多选模式失败,则打印错误日志
}
} else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) {
} else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER)
//如果当前选中的笔记类型为 TYPE_FOLDER则会注册一个 onCreateContextMenuListener用于创建上下文菜单
{
mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener);
}
}
return false;
return false;//返回 false 表示事件未被消耗,允许程序继续响应该事件的其他监听器
}
}

Loading…
Cancel
Save