Compare commits

...

27 Commits

Author SHA1 Message Date
p6zpjanrb 25ea5ecf7a Update NotesListActivity.java
1 year ago
p6zpjanrb 55390d17be 代码注释
1 year ago
p6zpjanrb eb8b68abad Update NotesListItem.java
1 year ago
p6zpjanrb 093d309b8d Update NoteEditText.java
1 year ago
ZYP 859c84ee76 文档修缮
1 year ago
ZYP 97256fc131 文档完善
1 year ago
ZYP d9295267a8 文档更新
1 year ago
puavjn2x9 5958b7eae0 ADD file via upload
1 year ago
puavjn2x9 3dc0126ae1 Delete 'test.puml'
1 year ago
puavjn2x9 b8959ff39a ADD file via upload
1 year ago
puavjn2x9 12e42e2d76 Delete 'test.puml'
1 year ago
pa2ltb7y5 e059c122f2 AGREE
1 year ago
pa2ltb7y5 21954768ab 注释
1 year ago
ZYP c1324a088e Merge branch 'develop'
1 year ago
ZYP 2989405c12 Merge branch 'develop'
1 year ago
ZYP 44f83a9d07 update
1 year ago
ZYP a5de6b3fe8 run
1 year ago
ZYP 0499c3404a de
1 year ago
p6zpjanrb caf05a4899 ADD file via upload
1 year ago
ZYP 821b74e1cf update word
1 year ago
ZYP d5721290ce terminal version
1 year ago
ZYP 8fd0b84489 1111
1 year ago
ZYP 1eb79408a4 te
1 year ago
ZYP ca27bd4084 background
1 year ago
ZYP 0074d4beb5 Merge branch 'develop'
1 year ago
ZYP 05fa872d42 11
1 year ago
ZYP 952cca3707 功能界面显示
1 year ago

@ -36,18 +36,29 @@ import net.micode.notes.R;
import java.util.HashMap;
import java.util.Map;
/*NoteEditTextEditTextEditText
mIndexmSelectionStartBeforeDelete
Scheme
MapSchemeID便SchemeID
*/
public class NoteEditText extends EditText {
private static final String TAG = "NoteEditText";
private int mIndex;
private int mSelectionStartBeforeDelete;
// 定义了几种Scheme的常量值
private static final String SCHEME_TEL = "tel:" ;
private static final String SCHEME_HTTP = "http:" ;
private static final String SCHEME_EMAIL = "mailto:" ;
// 定义了一个Map用于存储Scheme和对应的资源ID的映射关系
private static final Map<String, Integer> sSchemaActionResMap = new HashMap<String, Integer>();
static {
// 将不同Scheme和对应的资源ID放入Map中
sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel);
sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web);
sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email);
@ -58,47 +69,57 @@ public class NoteEditText extends EditText {
*/
public interface OnTextViewChangeListener {
/**
* Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens
* and the text is null
* {@link KeyEvent#KEYCODE_DEL}
*/
void onEditTextDelete(int index, String text);
/**
* Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER}
* happen
* {@link KeyEvent#KEYCODE_ENTER}
*/
void onEditTextEnter(int index, String text);
/**
* Hide or show item option when text change
*
*/
void onTextChange(int index, boolean hasText);
}
/*NoteEditTextEditText
*/
private OnTextViewChangeListener mOnTextViewChangeListener;
/*
NoteEditTextContextEditText(Context context, AttributeSet attrs)mIndex0
*/
public NoteEditText(Context context) {
super(context, null);
mIndex = 0;
}
/*
mIndex
*/
public void setIndex(int index) {
mIndex = index;
}
/*
OnTextViewChangeListener
*/
public void setOnTextViewChangeListener(OnTextViewChangeListener listener) {
mOnTextViewChangeListener = listener;
}
/*
NoteEditTextContextAttributeSetEditText(Context context, AttributeSet attrs, int defStyle)
*/
public NoteEditText(Context context, AttributeSet attrs) {
super(context, attrs, android.R.attr.editTextStyle);
}
public NoteEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
/*
onTouchEvent
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
@ -120,7 +141,9 @@ public class NoteEditText extends EditText {
return super.onTouchEvent(event);
}
/*
onKeyDown
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
@ -137,7 +160,9 @@ public class NoteEditText extends EditText {
}
return super.onKeyDown(keyCode, event);
}
/*
onKeyUp
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch(keyCode) {
@ -166,7 +191,9 @@ public class NoteEditText extends EditText {
}
return super.onKeyUp(keyCode, event);
}
/*
onFocusChanged
*/
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if (mOnTextViewChangeListener != null) {
@ -178,7 +205,11 @@ public class NoteEditText extends EditText {
}
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
/*
onCreateContextMenuURL
OnTextViewChangeListener
*/
@Override
protected void onCreateContextMenu(ContextMenu menu) {
if (getText() instanceof Spanned) {

@ -77,65 +77,91 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashSet;
//这个类实现了一个便签列表的界面,并包含了点击事件和长按事件的处理。
public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener {
// 定义查询便签列表的令牌
private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0;
private static final int FOLDER_LIST_QUERY_TOKEN = 1;
// 定义查询文件夹列表的令牌
private static final int FOLDER_LIST_QUERY_TOKEN = 1;
// 定义文件夹菜单选项的常量
private static final int MENU_FOLDER_DELETE = 0;
private static final int MENU_FOLDER_VIEW = 1;
private static final int MENU_FOLDER_CHANGE_NAME = 2;
// 定义保存便签介绍的偏好设置参数名称
private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction";
// 枚举类型,表示列表编辑状态
private enum ListEditState {
NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER
};
// 保存当前列表的编辑状态
private ListEditState mState;
// 后台查询操作的处理程序
private BackgroundQueryHandler mBackgroundQueryHandler;
// 便签列表数据适配器
private NotesListAdapter mNotesListAdapter;
// 显示便签列表的ListView
private ListView mNotesListView;
// 添加新便签的按钮
private Button mAddNewNote;
// 标识是否分发触摸事件
private boolean mDispatch;
// 原始触摸事件的Y坐标
private int mOriginY;
// 分发触摸事件的Y坐标
private int mDispatchY;
// 显示标题的文本视图
private TextView mTitleBar;
// 当前文件夹的ID
private long mCurrentFolderId;
// 内容解析器,用于访问应用程序的内容提供程序
private ContentResolver mContentResolver;
// 操作模式的回调接口
private ModeCallback mModeCallBack;
// 日志标签
private static final String TAG = "NotesListActivity";
// 便签列表滚动速率
public static final int NOTES_LISTVIEW_SCROLL_RATE = 30;
// 当前焦点便签数据项
private NoteItemData mFocusNoteDataItem;
// 便签正常选择的条件
private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?";
// 根文件夹选择的条件
private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>"
+ Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR ("
+ NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND "
+ NoteColumns.NOTES_COUNT + ">0)";
// 打开便签的请求码
private final static int REQUEST_CODE_OPEN_NODE = 102;
private final static int REQUEST_CODE_NEW_NODE = 103;
// 新建便签的请求码
private final static int REQUEST_CODE_NEW_NODE = 103;
}
@Override
/*
onCreate Activity Activity onCreate note_list initResources setAppInfoFromRawRes
*/
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.note_list);
@ -146,7 +172,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
*/
setAppInfoFromRawRes();
}
/*
onActivityResult startActivityForResult 便便 mNotesListAdapter.changeCursor(null) 便 onActivityResult
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK
@ -156,7 +184,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
super.onActivityResult(requestCode, resultCode, data);
}
}
/*
setAppInfoFromRawRes 便 SharedPreferences StringBuilder getResources().openRawResource(R.raw.introduction) introduction StringBuilder WorkingNote IDApp Widget ID便便便 true
*/
private void setAppInfoFromRawRes() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) {
@ -204,11 +234,23 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
@Override
/*
onStart startAsyncNotesListQuery
*/
protected void onStart() {
super.onStart();
startAsyncNotesListQuery();
}
/*
initResources
ContentResolver BackgroundQueryHandler
mCurrentFolderId
mNotesListView
mAddNewNote
ModeCallback
*/
private void initResources() {
mContentResolver = this.getContentResolver();
mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver());
@ -230,7 +272,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
mState = ListEditState.NOTE_LIST;
mModeCallBack = new ModeCallback();
}
/*
ModeCallback ListView
ActionMode
*/
private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener {
private DropdownMenu mDropDownMenu;
private ActionMode mActionMode;
@ -268,7 +315,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
});
return true;
}
/*
updateMenu
使
/
*/
private void updateMenu() {
int selectedCount = mNotesListAdapter.getSelectedCount();
// Update dropdown menu
@ -285,17 +339,24 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
}
}
/*
onPrepareActionMode ActionMode false
*/
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// TODO Auto-generated method stub
return false;
}
//onActionItemClicked 方法用于在点击 ActionMode 的菜单项时执行一些操作,但在这个方法中并没有实现任何逻辑,返回值为 false。
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
// TODO Auto-generated method stub
return false;
}
/*
onDestroyActionMode ActionMode
false
mAddNewNote
*/
public void onDestroyActionMode(ActionMode mode) {
mNotesListAdapter.setChoiceMode(false);
mNotesListView.setLongClickable(true);
@ -305,13 +366,22 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
public void finishActionMode() {
mActionMode.finish();
}
/*
onItemCheckedStateChanged
updateMenu
*/
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
boolean checked) {
mNotesListAdapter.setCheckedItem(position, checked);
updateMenu();
}
/*
onMenuItemClick
Toast
true
*/
public boolean onMenuItemClick(MenuItem item) {
if (mNotesListAdapter.getSelectedCount() == 0) {
Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none),

@ -30,19 +30,28 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
/*
NotesListAdapter CursorAdapterAppWidgetAttribute
*/
public class NotesListAdapter extends CursorAdapter {
// 用于日志记录的标签
private static final String TAG = "NotesListAdapter";
// 应用程序的上下文
private Context mContext;
// 存储选中索引的哈希映射
private HashMap<Integer, Boolean> mSelectedIndex;
// 笔记的数量
private int mNotesCount;
// 表示列表是否处于选择模式的标志
private boolean mChoiceMode;
// 内部类,用于存储应用小部件的属性
public static class AppWidgetAttribute {
public int widgetId;
public int widgetType;
};
public int widgetId; // 小部件的ID
public int widgetType; // 小部件的类型
}
// 初始化适配器的构造函数
public NotesListAdapter(Context context) {
super(context, null);
mSelectedIndex = new HashMap<Integer, Boolean>();
@ -50,34 +59,40 @@ public class NotesListAdapter extends CursorAdapter {
mNotesCount = 0;
}
// 创建一个新的视图来表示列表中的项
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return new NotesListItem(context);
}
// 将视图与指定位置上的数据进行绑定
@Override
public void bindView(View view, Context context, Cursor cursor) {
if (view instanceof NotesListItem) {
// 从游标中创建NoteItemData并将其与NotesListItem进行绑定
NoteItemData itemData = new NoteItemData(context, cursor);
((NotesListItem) view).bind(context, itemData, mChoiceMode,
isSelectedItem(cursor.getPosition()));
((NotesListItem) view).bind(context, itemData, mChoiceMode, isSelectedItem(cursor.getPosition()));
}
}
// 设置指定位置上项目的选中状态
public void setCheckedItem(final int position, final boolean checked) {
mSelectedIndex.put(position, checked);
notifyDataSetChanged();
}
// 检查列表是否处于选择模式
public boolean isInChoiceMode() {
return mChoiceMode;
}
// 设置列表的选择模式
public void setChoiceMode(boolean mode) {
mSelectedIndex.clear();
mChoiceMode = mode;
}
// 全选或取消全选列表中的所有项目
public void selectAll(boolean checked) {
Cursor cursor = getCursor();
for (int i = 0; i < getCount(); i++) {
@ -89,22 +104,23 @@ public class NotesListAdapter extends CursorAdapter {
}
}
// 获取选中项目的ID集合
public HashSet<Long> getSelectedItemIds() {
HashSet<Long> itemSet = new HashSet<Long>();
for (Integer position : mSelectedIndex.keySet()) {
if (mSelectedIndex.get(position) == true) {
Long id = getItemId(position);
if (id == Notes.ID_ROOT_FOLDER) {
Log.d(TAG, "Wrong item id, should not happen");
Log.d(TAG, "错误的项目ID不应该发生");
} else {
itemSet.add(id);
}
}
}
return itemSet;
}
// 获取选中小部件的属性集合
public HashSet<AppWidgetAttribute> getSelectedWidget() {
HashSet<AppWidgetAttribute> itemSet = new HashSet<AppWidgetAttribute>();
for (Integer position : mSelectedIndex.keySet()) {
@ -116,11 +132,8 @@ public class NotesListAdapter extends CursorAdapter {
widget.widgetId = item.getWidgetId();
widget.widgetType = item.getWidgetType();
itemSet.add(widget);
/**
* Don't close cursor here, only the adapter could close it
*/
} else {
Log.e(TAG, "Invalid cursor");
Log.e(TAG, "无效的游标");
return null;
}
}
@ -128,6 +141,7 @@ public class NotesListAdapter extends CursorAdapter {
return itemSet;
}
// 获取选中项目的数量
public int getSelectedCount() {
Collection<Boolean> values = mSelectedIndex.values();
if (null == values) {
@ -143,11 +157,13 @@ public class NotesListAdapter extends CursorAdapter {
return count;
}
// 检查是否全部项目都被选中
public boolean isAllSelected() {
int checkedCount = getSelectedCount();
return (checkedCount != 0 && checkedCount == mNotesCount);
}
// 检查指定位置上的项目是否被选中
public boolean isSelectedItem(final int position) {
if (null == mSelectedIndex.get(position)) {
return false;
@ -155,18 +171,21 @@ public class NotesListAdapter extends CursorAdapter {
return mSelectedIndex.get(position);
}
// 当数据集的内容发生变化时调用
@Override
protected void onContentChanged() {
super.onContentChanged();
calcNotesCount();
}
// 改变游标
@Override
public void changeCursor(Cursor cursor) {
super.changeCursor(cursor);
calcNotesCount();
}
// 计算列表中笔记的数量
private void calcNotesCount() {
mNotesCount = 0;
for (int i = 0; i < getCount(); i++) {
@ -176,7 +195,7 @@ public class NotesListAdapter extends CursorAdapter {
mNotesCount++;
}
} else {
Log.e(TAG, "Invalid cursor");
Log.e(TAG, "无效的游标");
return;
}
}

@ -28,95 +28,105 @@ import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser.NoteItemBgResources;
/*
NotesListItem LinearLayout
*/
public class NotesListItem extends LinearLayout {
private ImageView mAlert;
private TextView mTitle;
private TextView mTime;
private TextView mCallName;
private NoteItemData mItemData;
private CheckBox mCheckBox;
private ImageView mAlert; // 提醒图标
private TextView mTitle; // 标题
private TextView mTime; // 时间
private TextView mCallName; // 通话名称
private NoteItemData mItemData; // 笔记项数据
private CheckBox mCheckBox; // 多选框
public NotesListItem(Context context) {
super(context);
inflate(context, R.layout.note_item, this);
mAlert = (ImageView) findViewById(R.id.iv_alert_icon);
mTitle = (TextView) findViewById(R.id.tv_title);
mTime = (TextView) findViewById(R.id.tv_time);
mCallName = (TextView) findViewById(R.id.tv_name);
mCheckBox = (CheckBox) findViewById(android.R.id.checkbox);
inflate(context, R.layout.note_item, this); // 填充视图
mAlert = (ImageView) findViewById(R.id.iv_alert_icon); // 初始化提醒图标
mTitle = (TextView) findViewById(R.id.tv_title); // 初始化标题
mTime = (TextView) findViewById(R.id.tv_time); // 初始化时间
mCallName = (TextView) findViewById(R.id.tv_name); // 初始化通话名称
mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); // 初始化多选框
}
// 绑定数据到视图
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 {
} else { // 否则隐藏多选框
mCheckBox.setVisibility(View.GONE);
}
mItemData = data;
if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) {
mCallName.setVisibility(View.GONE);
mAlert.setVisibility(View.VISIBLE);
mItemData = data; // 保存数据项
if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { // 如果是通话记录文件夹
mCallName.setVisibility(View.GONE); // 隐藏通话名称
mAlert.setVisibility(View.VISIBLE); // 显示提醒图标
mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
// 设置标题文本为通话记录文件夹的名称和包含的文件数
mTitle.setText(context.getString(R.string.call_record_folder_name)
+ context.getString(R.string.format_folder_files_count, data.getNotesCount()));
mAlert.setImageResource(R.drawable.call_record);
} else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) {
mCallName.setVisibility(View.VISIBLE);
mCallName.setText(data.getCallName());
mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem);
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
if (data.hasAlert()) {
mAlert.setImageResource(R.drawable.clock);
mAlert.setVisibility(View.VISIBLE);
mAlert.setImageResource(R.drawable.call_record); // 设置提醒图标为通话记录图标
} else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { // 如果父文件夹是通话记录文件夹
mCallName.setVisibility(View.VISIBLE); // 显示通话名称
mCallName.setText(data.getCallName()); // 设置通话名称
mTitle.setTextAppearance(context, R.style.TextAppearanceSecondaryItem);// 设置标题文本样式为次要文本样式
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); // 设置标题文本为格式化的说明文本
if (data.hasAlert()) { // 如果有提醒
mAlert.setImageResource(R.drawable.clock); // 设置提醒图标为闹钟图标
mAlert.setVisibility(View.VISIBLE); // 显示提醒图标
} else {
mAlert.setVisibility(View.GONE);
mAlert.setVisibility(View.GONE); // 隐藏提醒图标
}
} else {
mCallName.setVisibility(View.GONE);
mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);
} else { // 其他类型的笔记项
mCallName.setVisibility(View.GONE); // 隐藏通话名称
mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem);// 设置标题文本样式为主要文本样式
if (data.getType() == Notes.TYPE_FOLDER) {
if (data.getType() == Notes.TYPE_FOLDER) { // 如果是文件夹类型
// 设置标题文本为文件夹名称和包含的文件数
mTitle.setText(data.getSnippet()
+ context.getString(R.string.format_folder_files_count,
data.getNotesCount()));
mAlert.setVisibility(View.GONE);
} else {
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet()));
if (data.hasAlert()) {
mAlert.setImageResource(R.drawable.clock);
mAlert.setVisibility(View.VISIBLE);
mAlert.setVisibility(View.GONE); // 隐藏提醒图标
} else { // 如果是笔记类型
mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); // 设置标题文本为格式化的说明文本
if (data.hasAlert()) { // 如果有提醒
mAlert.setImageResource(R.drawable.clock); // 设置提醒图标为闹钟图标
mAlert.setVisibility(View.VISIBLE); // 显示提醒图标
} else {
mAlert.setVisibility(View.GONE);
mAlert.setVisibility(View.GONE); // 隐藏提醒图标
}
}
}
mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate()));
mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); // 设置时间文本为相对时间
setBackground(data);
setBackground(data); // 设置背景
}
// 设置背景
private void setBackground(NoteItemData data) {
int id = data.getBgColorId();
if (data.getType() == Notes.TYPE_NOTE) {
if (data.isSingle() || data.isOneFollowingFolder()) {
setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id));
} else if (data.isLast()) {
setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id));
} else if (data.isFirst() || data.isMultiFollowingFolder()) {
setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id));
} else {
setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id));
if (data.getType() == Notes.TYPE_NOTE) { // 如果是笔记类型
if (data.isSingle() || data.isOneFollowingFolder()) { // 如果是单个笔记或者是紧接在文件夹后面的单个笔记
setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); // 设置背景资源为单个笔记的背景资源
} else if (data.isLast()) { // 如果是最后一个笔记
setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); // 设置背景资源为最后一个笔记的背景资源
} else if (data.isFirst() || data.isMultiFollowingFolder()) { // 如果是第一个笔记或者是紧接在文件夹后面的多个笔记
setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); // 设置背景资源为第一个笔记的背景资源
} else { // 其他情况
setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); // 设置背景资源为普通笔记的背景资源
}
} else {
setBackgroundResource(NoteItemBgResources.getFolderBgRes());
} else { // 如果是文件夹类型
setBackgroundResource(NoteItemBgResources.getFolderBgRes()); // 设置背景资源为文件夹的背景资源
}
}
public NoteItemData getItemData() {
return mItemData;
}
}
}
Loading…
Cancel
Save