目录
前言
一、NotsPad功能
二、代码
1.NoteEditor的拓展活动:
2.部分功能介绍
(1)Creates a projection that returns the note ID and the note contents:
(2)定义自定义EditText视图,该视图在显示的每一行文本之间绘制线条:
(3)置顶功能:
在Activity即将到达前台时被调用。这发生在Activity到达任务栈的顶部时,或者当它第一次启动时。移动到列表中的第一个注释,为用户选择的操作设置适当的标题,将注释内容放入TextView中,并保存原始文本作为备份。
(4) 剪贴板导入NotesPad
总结
以上就是今天要讲的内容,本文仅仅简单介绍了NotesPad的一部分额外功能。
前言
介绍部分NotesPad的基本功能和额外添加的功能
提示:以下是本篇文章正文内容,下面案例可供参考
一、NotsPad功能
Notespad是基于Android studio的一种功能,该工具是为了解决记录事件而创建的。
二、代码
1.NoteEditor的拓展活动:
代码如下:
public class NoteEditor extends Activity {
// For logging and debugging purposes
private static final String TAG = "NoteEditor";
private static final String[] PROJECTION =
new String[] {
NotePad.Notes._ID,
NotePad.Notes.COLUMN_NAME_TITLE,
NotePad.Notes.COLUMN_NAME_NOTE
};
2.部分功能介绍
(1)Creates a projection that returns the note ID and the note contents:
代码如下:
public static class LinedEditText extends EditText {
private Rect mRect;
private Paint mPaint;
// This constructor is used by LayoutInflater
public LinedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// Creates a Rect and a Paint object, and sets the style and color of the Paint object.
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(0x800000FF);
}
(2)定义自定义EditText视图,该视图在显示的每一行文本之间绘制线条:
代码如下:
public static class LinedEditText extends EditText {
private Rect mRect;
private Paint mPaint;
// This constructor is used by LayoutInflater
public LinedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
// Creates a Rect and a Paint object, and sets the style and color of the Paint object.
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(0x800000FF);
}
(3)置顶功能:
在Activity即将到达前台时被调用。这发生在Activity到达任务栈的顶部时,或者当它第一次启动时。移动到列表中的第一个注释,为用户选择的操作设置适当的标题,将注释内容放入TextView中,并保存原始文本作为备份。
在Activity即将到达前台时被调用。这发生在Activity到达任务栈的顶部时,或者当它第一次启动时。移动到列表中的第一个注释,为用户选择的操作设置适当的标题,将注释内容放入TextView中,并保存原始文本作为备份。
代码如下:
mCursor.moveToFirst();
// Modifies the window title for the Activity according to the current Activity state.
if (mState == STATE_EDIT) {
// Set the title of the Activity to include the note title
int colTitleIndex = mCursor.getColumnIndex(NotePad.Notes.COLUMN_NAME_TITLE);
String title = mCursor.getString(colTitleIndex);
Resources res = getResources();
String text = String.format(res.getString(R.string.title_edit), title);
setTitle(text);
// Sets the title to "create" for inserts
} else if (mState == STATE_INSERT) {
setTitle(getText(R.string.title_create));
}
int colNoteIndex = mCursor.getColumnIndex(NotePad.Notes.COLUMN_NAME_NOTE);
String note = mCursor.getString(colNoteIndex);
mText.setTextKeepState(note);
// Stores the original note text, to allow the user to revert changes.
if (mOriginalContent == null) {
mOriginalContent = note;
}
} else {
setTitle(getText(R.string.error_title));
mText.setText(getText(R.string.error_message));
}
}
(4) 剪贴板导入NotesPad
一种用剪贴板的内容替换笔记数据的辅助方法。
代码如下:
private final void performPaste() {
// Gets a handle to the Clipboard Manager
ClipboardManager clipboard = (ClipboardManager)
getSystemService(Context.CLIPBOARD_SERVICE);
// Gets a content resolver instance
ContentResolver cr = getContentResolver();
// Gets the clipboard data from the clipboard
ClipData clip = clipboard.getPrimaryClip();
if (clip != null) {
String text=null;
String title=null;
// Gets the first item from the clipboard data
ClipData.Item item = clip.getItemAt(0);
// Tries to get the item's contents as a URI pointing to a note
Uri uri = item.getUri();
if (uri != null && NotePad.Notes.CONTENT_ITEM_TYPE.equals(cr.getType(uri))) {
Cursor orig = cr.query(
uri, // URI for the content provider
PROJECTION, // Get the columns referred to in the projection
null, // No selection variables
null, // No selection variables, so no criteria are needed
null // Use the default sort order
);
// If the Cursor is not null, and it contains at least one record
// (moveToFirst() returns true), then this gets the note data from it.
if (orig != null) {
if (orig.moveToFirst()) {
int colNoteIndex = mCursor.getColumnIndex(NotePad.Notes.COLUMN_NAME_NOTE);
int colTitleIndex = mCursor.getColumnIndex(NotePad.Notes.COLUMN_NAME_TITLE);
text = orig.getString(colNoteIndex);
title = orig.getString(colTitleIndex);
}
// Closes the cursor.
orig.close();
}
}
// If the contents of the clipboard wasn't a reference to a note, then
// this converts whatever it is to text.
if (text == null) {
text = item.coerceToText(this).toString();
}
// Updates the current note with the retrieved title and text.
updateNote(text, title);
}
}
效果图:
总结
以上就是这次博客中讲到的内容。
作者:闪电侠骑自行车
原文地址:https://blog.csdn.net/m0_46458494?spm=1001.2014.3001.5343



