You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
note/NoteEditActivity.java

265 lines
7.9 KiB

2 months ago
/**
* MiCodeApache License 2.0
*/
package net.micode.notes.ui;
// 导入所需的Android库和自定义包
public class NoteEditActivity extends Activity implements OnClickListener,
NoteSettingChangedListener, OnTextViewChangeListener {
// 内部类,用于持有笔记标题区域的视图元素
private class HeadViewHolder {
public TextView tvModified;
public ImageView ivAlertIcon;
public TextView tvAlertDate;
public ImageView ibSetBgColor;
}
// 定义背景颜色选择器和字体大小选择器的映射关系
private static final Map<Integer, Integer> sBgSelectorBtnsMap = new HashMap<Integer, Integer>();
static {
// 初始化背景颜色按钮映射
}
private static final Map<Integer, Integer> sBgSelectorSelectionMap = new HashMap<Integer, Integer>();
static {
// 初始化背景颜色选择器映射
}
private static final Map<Integer, Integer> sFontSizeBtnsMap = new HashMap<Integer, Integer>();
static {
// 初始化字体大小按钮映射
}
private static final Map<Integer, Integer> sFontSelectorSelectionMap = new HashMap<Integer, Integer>();
static {
// 初始化字体大小选择器映射
}
// 类变量定义
private static final String TAG = "NoteEditActivity";
private HeadViewHolder mNoteHeaderHolder;
private View mHeadViewPanel;
private View mNoteBgColorSelector;
private View mFontSizeSelector;
private EditText mNoteEditor;
private View mNoteEditorPanel;
private WorkingNote mWorkingNote;
private SharedPreferences mSharedPrefs;
private int mFontSizeId;
private static final String PREFERENCE_FONT_SIZE = "pref_font_size";
private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10;
public static final String TAG_CHECKED = String.valueOf('\u221A');
public static final String TAG_UNCHECKED = String.valueOf('\u25A1');
private LinearLayout mEditTextList;
private String mUserQuery;
private Pattern mPattern;
// onCreate方法初始化Activity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
// 省略了部分代码...
}
// onRestoreInstanceState方法用于在Activity被系统销毁后恢复状态
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
// 省略了部分代码...
}
// initActivityState方法初始化Activity状态
private boolean initActivityState(Intent intent) {
// 省略了部分代码...
}
// onResume方法初始化笔记屏幕
@Override
protected void onResume() {
super.onResume();
initNoteScreen();
}
// initNoteScreen方法初始化笔记屏幕视图
private void initNoteScreen() {
// 省略了部分代码...
}
// onNewIntent方法处理新的Intent
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
initActivityState(intent);
}
// onSaveInstanceState方法保存Activity状态
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
// 省略了部分代码...
}
// dispatchTouchEvent方法处理触摸事件
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// 省略了部分代码...
}
// inRangeOfView方法判断触摸事件是否在视图范围内
private boolean inRangeOfView(View view, MotionEvent ev) {
// 省略了部分代码...
}
// initResources方法初始化资源
private void initResources() {
// 省略了部分代码...
}
// onPause方法保存笔记
@Override
protected void onPause() {
super.onPause();
if(saveNote()) {
Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length());
}
clearSettingState();
}
// updateWidget方法更新Widget
private void updateWidget() {
// 省略了部分代码...
}
// onClick方法处理点击事件
public void onClick(View v) {
// 省略了部分代码...
}
// onBackPressed方法处理返回键事件
@Override
public void onBackPressed() {
// 省略了部分代码...
}
// clearSettingState方法清除设置状态
private boolean clearSettingState() {
// 省略了部分代码...
}
// onBackgroundColorChanged方法处理背景颜色变化
public void onBackgroundColorChanged() {
// 省略了部分代码...
}
// onPrepareOptionsMenu方法准备菜单
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// 省略了部分代码...
}
// onOptionsItemSelected方法处理菜单项点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// 省略了部分代码...
}
// setReminder方法设置提醒
private void setReminder() {
// 省略了部分代码...
}
// sendTo方法分享笔记到其他应用
private void sendTo(Context context, String info) {
// 省略了部分代码...
}
// createNewNote方法创建新笔记
private void createNewNote() {
// 省略了部分代码...
}
// deleteCurrentNote方法删除当前笔记
private void deleteCurrentNote() {
// 省略了部分代码...
}
// isSyncMode方法判断是否是同步模式
private boolean isSyncMode() {
// 省略了部分代码...
}
// onClockAlertChanged方法处理时钟提醒变化
public void onClockAlertChanged(long date, boolean set) {
// 省略了部分代码...
}
// onWidgetChanged方法处理Widget变化
public void onWidgetChanged() {
// 省略了部分代码...
}
// onEditTextDelete方法处理编辑文本删除
public void onEditTextDelete(int index, String text) {
// 省略了部分代码...
}
// onEditTextEnter方法处理编辑文本回车
public void onEditTextEnter(int index, String text) {
// 省略了部分代码...
}
// switchToListMode方法切换到列表模式
private void switchToListMode(String text) {
// 省略了部分代码...
}
// getHighlightQueryResult方法高亮查询结果
private Spannable getHighlightQueryResult(String fullText, String userQuery) {
// 省略了部分代码...
}
// getListItem方法获取列表项视图
private View getListItem(String item, int index) {
// 省略了部分代码...
}
// onTextChange方法处理文本变化
public void onTextChange(int index, boolean hasText) {
// 省略了部分代码...
}
// onCheckListModeChanged方法处理检查列表模式变化
public void onCheckListModeChanged(int oldMode, int newMode) {
// 省略了部分代码...
}
// getWorkingText方法获取工作文本
private boolean getWorkingText() {
// 省略了部分代码...
}
// saveNote方法保存笔记
private boolean saveNote() {
// 省略了部分代码...
}
// sendToDesktop方法发送到桌面
private void sendToDesktop() {
// 省略了部分代码...
}
// makeShortcutIconTitle方法制作快捷方式图标标题
private String makeShortcutIconTitle(String content) {
// 省略了部分代码...
}
// showToast方法显示Toast提示
private void showToast(int resId) {
showToast(resId, Toast.LENGTH_SHORT);
}
// showToast方法显示Toast提示带持续时间
private void showToast(int resId, int duration) {
}
}