diff --git a/Notesmaster/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/Notesmaster/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java index 96b77da..56a1dd8 100644 --- a/Notesmaster/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java +++ b/Notesmaster/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -29,52 +29,103 @@ import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; +/** + * 文件夹列表适配器,用于在列表中显示文件夹数据 + * 继承自CursorAdapter,基于Cursor数据源工作 + */ public class FoldersListAdapter extends CursorAdapter { - public static final String [] PROJECTION = { - NoteColumns.ID, - NoteColumns.SNIPPET + // 查询列名数组,定义需要从Cursor中获取的列 + public static final String[] PROJECTION = { + NoteColumns.ID, // 文件夹ID列 + NoteColumns.SNIPPET // 文件夹名称/片段列 }; - public static final int ID_COLUMN = 0; - public static final int NAME_COLUMN = 1; + // 列索引常量 + public static final int ID_COLUMN = 0; // ID列的索引位置 + public static final int NAME_COLUMN = 1; // 名称列的索引位置 + /** + * 构造函数 + * @param context 上下文对象 + * @param c 数据源Cursor + */ public FoldersListAdapter(Context context, Cursor c) { super(context, c); - // TODO Auto-generated constructor stub + // TODO: 可在此处添加初始化代码 } + /** + * 创建新列表项视图 + * @param context 上下文对象 + * @param cursor 数据Cursor + * @param parent 父视图组 + * @return 新创建的列表项视图 + */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { + // 创建新的FolderListItem实例 return new FolderListItem(context); } + /** + * 绑定数据到现有视图 + * @param view 要绑定数据的视图 + * @param context 上下文对象 + * @param cursor 数据Cursor + */ @Override public void bindView(View view, Context context, Cursor cursor) { + // 检查视图类型是否正确 if (view instanceof FolderListItem) { - String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context - .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + // 根据ID判断是否是根文件夹,获取对应的显示名称 + String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) + ? context.getString(R.string.menu_move_parent_folder) + : cursor.getString(NAME_COLUMN); + // 调用FolderListItem的bind方法设置名称 ((FolderListItem) view).bind(folderName); } } + /** + * 获取指定位置的文件夹名称 + * @param context 上下文对象 + * @param position 列表位置 + * @return 文件夹名称字符串 + */ public String getFolderName(Context context, int position) { + // 获取指定位置的Cursor对象 Cursor cursor = (Cursor) getItem(position); - return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context - .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); + // 根据ID判断是否是根文件夹,返回对应的名称 + return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) + ? context.getString(R.string.menu_move_parent_folder) + : cursor.getString(NAME_COLUMN); } + /** + * 自定义文件夹列表项视图类 + */ private class FolderListItem extends LinearLayout { - private TextView mName; + private TextView mName; // 显示文件夹名称的TextView + /** + * 构造函数 + * @param context 上下文对象 + */ public FolderListItem(Context context) { super(context); + // 从布局文件填充视图 inflate(context, R.layout.folder_list_item, this); + // 查找名称TextView mName = (TextView) findViewById(R.id.tv_folder_name); } + /** + * 绑定文件夹名称到视图 + * @param name 要显示的文件夹名称 + */ public void bind(String name) { + // 设置TextView文本 mName.setText(name); } } - }