记事本
Posted 晚睡晚起秦叁叁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记事本相关的知识,希望对你有一定的参考价值。
功能:(一)可添加文字内容并查询内容,并且可以查看保存时间,用户在登录的同时记事本显示xx用户欢迎你!;
(二)可创建用户登录,并正常使用忘记密码,注册用户等功能
运行效果:
界面设计(一):添加标题内容
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jishiben.AddNoteActivity">
<EditText
android:id="@+id/et_content"
android:layout_width="199dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.13"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.368" />
<TextView
android:id="@+id/Content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="内容"
android:textColor="@android:color/background_dark"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.066"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.242" />
<Button
android:id="@+id/bt_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="保存"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.921"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.017" />
<TextView
android:id="@+id/Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="标题"
android:textColor="@android:color/background_dark"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.093"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.017" />
<EditText
android:id="@+id/et_title"
android:layout_width="199dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.13"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.092" />
<TextView
android:id="@+id/createDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
tools:layout_editor_absoluteX="191dp"
tools:layout_editor_absoluteY="122dp" />
</android.support.constraint.ConstraintLayout>
界面设计(二):记事本界面布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.jishiben.NoteBookActivity">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.077"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.016" />
<Button
android:id="@+id/bt_add"
android:layout_width="wrap_content"
android:layout_height="44dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@color/colorAccent"
android:elevation="12dp"
android:text="添加"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.892"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
<ImageView
android:id="@+id/imageView"
android:layout_width="45dp"
android:layout_height="50dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.024"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.168"
app:srcCompat="@android:drawable/ic_menu_search" />
<EditText
android:id="@+id/et_query"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:ems="10"
android:hint="请输入查询标题"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.346"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.167" />
<ListView
android:id="@+id/list_note"
android:layout_width="368dp"
android:layout_height="332dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.822" />
<Button
android:id="@+id/bt_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="212dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.167" />
</android.support.constraint.ConstraintLayout>
界面设计(三):记事本模板
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
android:layout_width="63dp"
android:layout_height="39dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="标题"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.249"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.153" />
<TextView
android:id="@+id/content"
android:layout_width="101dp"
android:layout_height="38dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text='"测试内容"'
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.573"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.148" />
<TextView
android:id="@+id/noticeDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="发表时间"
android:textColor="@android:color/holo_red_dark"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.878"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.159" />
<TextView
android:id="@+id/getsqlld"
android:layout_width="5dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.066"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.136" />
</android.support.constraint.ConstraintLayout>
代码在这里:
(一)添加标题内容
package com.example.jishiben;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AddNoteActivity extends AppCompatActivity
private Button button;
private EditText title,content;
private DBAdapter dbAdapter;
private String createDate;
private String name;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_note);
button=findViewById(R.id.bt_save);
title=findViewById(R.id.et_title);
content=findViewById(R.id.et_content);
Intent intent=this.getIntent();
name=intent.getStringExtra("name");
content.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date curDate =new Date(System.currentTimeMillis());
createDate=formatter.format(curDate);
dbAdapter =new DBAdapter(this);
dbAdapter.open();
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
NoteBook noteBook = new NoteBook();
String note_title, note_content;
note_title = title.getText().toString();
note_content = content.getText().toString();
noteBook.Title = note_title;
noteBook.Content = note_content;
noteBook.ContentDate = createDate;
long colum = dbAdapter.insert_note(noteBook);
if (colum == -1)
Toast toast = Toast.makeText(AddNoteActivity.this, "添加过程错误!!", Toast.LENGTH_SHORT);
toast.show();
else
Toast toast = Toast.makeText(AddNoteActivity.this, "成功添加数据!!", Toast.LENGTH_SHORT);
toast.show();
Intent intent = new Intent(AddNoteActivity.this, NoteBookActivity.class);
intent.putExtra("name", name);
startActivity(intent);
);
(二)编辑记事本界面——NoteBookActivity
内容包括添加标题与内容,以及创建时间。
package com.example.jishiben;
import android.content.Intent;
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
public class NoteBookActivity extends AppCompatActivity
private TextView t;
private Button bt_add, bt_clear;
private ListView listView;
private DBAdapter dbAdapter;
private ArrayList<NoteBook> notelist;
private EditText query;
NoteBook[] noteBooks;
BaseAdapter mListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_book);
t = findViewById(R.id.name);
bt_add = findViewById(R.id.bt_add);
listView = findViewById(R.id.list_note);
query = findViewById(R.id.et_query);
bt_clear = findViewById(R.id.bt_clear);
Intent intent = this.getIntent();
final String name = intent.getStringExtra("name");
t.setText(name + "欢迎你!");
t.setTextSize(30);
t.setTextColor(Color.GREEN);
dbAdapter = new DBAdapter(this);
dbAdapter.open();
notelist = new ArrayList<>();
noteBooks = dbAdapter.queryAllData();
if (noteBooks == null)
listView.setAdapter(null);
else
for (int i = 0; i < noteBooks.length; i++)
notelist.add(noteBooks[i]);
mListAdapter = new BaseAdapter()
@Override
public int getCount()
return notelist.size();
@Override
public Object getItem(int i)
return i;
@Override
public long getItemId(int i)
return i;
@Override
public View getView(int i, View convertView, ViewGroup parent)
View view;
if (convertView == null)
view = View.inflate(getBaseContext(), R.layout.list_item_memo1, null);
else
view = convertView;
NoteBook memo = notelist.get(i);
TextView title = (TextView) view.findViewById(R.id.title);
TextView content = (TextView) view.findViewById(R.id.content);
TextView getsqlId = (TextView) view.findViewById(R.id.getsqlld);
TextView createDate = (TextView) view.findViewById(R.id.noticeDate);
title.setText(memo.getTitle());
content.setText(memo.getContent());
createDate.setText(memo.getContentDate());
getsqlId.setText(Integer.toString(memo.getID()));
return view;
;
listView.setAdapter(mListAdapter);
query.addTextChangedListener(new TextWatcher()
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count)
if (charSequence.toString().equals(""))
bt_clear.setVisibility(View.GONE);
else
bt_clear.setVisibility(View.VISIBLE);
String titleChange = query.getText().toString();
Log.v("改变数据:", titleChange);
noteBooks = dbAdapter.queryOneDatafromNote(titleChange);
notelist.clear();
for (int j = 0; j < noteBooks.length; j++)
notelist.add(noteBooks[j]);
mListAdapter.notifyDataSetChanged();
listView.setAdapter(mListAdapter);
@Override
public void afterTextChanged(Editable editable)
);
bt_clear.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
query.setText("");
);
bt_add.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Intent intent = new Intent(NoteBookActivity.this, AddNoteActivity.class);
intent.putExtra("name", name);
startActivity(intent);
);
(三)定义记事本布局——NoteBook
package com.example.jishiben;
public class NoteBook
public int ID = -1;
public String Title;
public String Content;
public String ContentDate;
public int getID()
return ID;
public void setID(int ID)
this.ID = ID;
public String getTitle()
return Title;
public void setTitle(String title)
Title = title;
public String getContent()
return Content;
public void setContent(String content)
Content = content;
public String getContentDate()
return ContentDate;
public void setContentDate(String contentDate)
ContentDate = contentDate;
@Override
public String toString()
String result = "";
result += "ID:" + this.ID + ",";
result += "标题:" + this.Title + ",";
result += "内容:" + this.Content + ", ";
result += "日期:" + this.ContentDate + ",";
return result;
(四)连接数据库
package com.example.jishiben;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class DBAdapter
private static final String DB_NAME = "MyData.db";
private static final String DB_TABLE1 = "peopleinfo";
private static final String DB_TABLE2 = "notebook";
private static final int DB_VERSION = 1;
public static final String KEY_ID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_PASS = "pass";
public static final String KEY_SEX = "sex";
public static final String KEY_MINZU = "minzu";
public static final String KEY_ID1 = "_id1";
public static final String KEY_TITLE = "tilte";
public static final String KEY_CONTENT = "content";
public static final String KEY_CONTENTDATE = "contentdate";
private SQLiteDatabase db;
private final Context context;
private DBOpenHelper dbOpenHelper;
public DBAdapter(Context _context)
context = _context;
/** Close the database */
public void close()
if (db != null)
db.close();
db = null;
/** Open the database */
public void open() throws SQLiteException
dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);
try
db = dbOpenHelper.getWritableDatabase();
catch (SQLiteException ex)
db = dbOpenHelper.getReadableDatabase();
public long insert(People people)
ContentValues newValues = new ContentValues();
newValues.put(KEY_NAME, people.Name);
newValues.put(KEY_PASS, people.Pass);
newValues.put(KEY_SEX, people.Sex);
newValues.put(KEY_MINZU, people.Minzu);
return db.insert(DB_TABLE1, null, newValues);
public long insert_note(NoteBook noteBook)
ContentValues newValues = new ContentValues();
newValues.put(KEY_TITLE, noteBook.Title);
newValues.put(KEY_CONTENT, noteBook.Content);
newValues.put(KEY_CONTENTDATE, noteBook.ContentDate);
return db.insert(DB_TABLE2, null, newValues);
public NoteBook[] queryAllData()
Cursor results = db.query(DB_TABLE2, new String[] KEY_ID1, KEY_TITLE, KEY_CONTENT, KEY_CONTENTDATE,
null, null, null, null, null);
return ConvertToNote(results);
public People[] queryAllDatafromPeople()
Cursor results = db.query(DB_TABLE1, new String[] KEY_ID,KEY_NAME, KEY_PASS, KEY_SEX,KEY_MINZU,
null, null, null, null, null);
return ConvertToPeople(results);
public NoteBook[] queryOneDatafromNote(String name)
Cursor results = db.query(DB_TABLE2, new String[] KEY_ID1, KEY_TITLE, KEY_CONTENT, KEY_CONTENTDATE,
KEY_TITLE + " like '%" + name+"%'", null, null, null, null);
return ConvertToNote(results);
public People[] queryOneData(String name)
Cursor results = db.query(DB_TABLE1, new String[] KEY_ID, KEY_NAME, KEY_PASS, KEY_SEX,KEY_MINZU,
KEY_NAME + "='" + name+"'", null, null, null, null);
return ConvertToPeople(results);
private NoteBook[] ConvertToNote(Cursor cursor)
int resultCounts = cursor.getCount();
if (resultCounts == 0 || !cursor.moveToFirst())
return null;
NoteBook[] noteBooks = new NoteBook[resultCounts];
for (int i = 0 ; i<resultCounts; i++)
noteBooks[i] = new NoteBook();
noteBooks[i].ID = cursor.getInt(0);
noteBooks[i].Title = cursor.getString(cursor.getColumnIndex(KEY_TITLE));
noteBooks[i].Content = cursor.getString(cursor.getColumnIndex(KEY_CONTENT));
noteBooks[i].ContentDate = cursor.getString(cursor.getColumnIndex(KEY_CONTENTDATE));
cursor.moveToNext();
return noteBooks;
private People[] ConvertToPeople(Cursor cursor)
int resultCounts = cursor.getCount();
if (resultCounts == 0 || !cursor.moveToFirst())
return null;
People[] peoples = new People[resultCounts];
for (int i = 0 ; i<resultCounts; i++)
peoples[i] = new People();
peoples[i].ID = cursor.getInt(0);
peoples[i].Name = cursor.getString(cursor.getColumnIndex(KEY_NAME));
peoples[i].Pass = cursor.getString(cursor.getColumnIndex(KEY_PASS));
peoples[i].Sex = cursor.getString(cursor.getColumnIndex(KEY_SEX));
peoples[i].Minzu = cursor.getString(cursor.getColumnIndex(KEY_MINZU));
cursor.moveToNext();
return peoples;
public long deleteAllData()
return db.delete(DB_TABLE2, null, null);
public void deleteOneDatafromNote(int id)
if(db==null) db=dbOpenHelper.getWritableDatabase();
db.delete(DB_TABLE2, KEY_ID1 + "=?", new String[]String.valueOf(id));
public long updateOneData(String s , People people)
ContentValues updateValues = new ContentValues();
updateValues.put(KEY_NAME, people.Name);
updateValues.put(KEY_PASS, people.Pass);
updateValues.put(KEY_SEX, people.Sex);
updateValues.put(KEY_MINZU, people.Minzu);
return db.update(DB_TABLE1, updateValues, KEY_PASS + "='" + s+"'", null);
/** 静态Helper类,用于建立、更新和打开数据库*/
private static class DBOpenHelper extends SQLiteOpenHelper
public DBOpenHelper(Context context, String name, CursorFactory factory, int version)
super(context, name, factory, version);
private static final String DB_CREATE1 = "create table " +
DB_TABLE1 + " (" + KEY_ID + " integer primary key autoincrement, " +
KEY_NAME+ " varchar(20) not null, " + KEY_PASS+ " varchar(10) not null," + KEY_SEX + " varchar(10),"+ KEY_MINZU + " varchar(10));";
private static final String DB_CREATE2 = "create table " +
DB_TABLE2 + " (" + KEY_ID1 + " integer primary key autoincrement, " +
KEY_TITLE+ " varchar(20) not null, " + KEY_CONTENT+ " varchar(200) not null," + KEY_CONTENTDATE + " varchar(50));";
@Override
public void onCreate(SQLiteDatabase _db)
_db.execSQL(DB_CREATE2);
_db.execSQL(DB_CREATE1);
@Override
public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion)
_db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE1);
_db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE2);
onCreate(_db);
以上是关于记事本的主要内容,如果未能解决你的问题,请参考以下文章