Android 记事本NotePad,阿里P8大牛从零开始教Android开源框架

private static final int DATABASE_VERSION = 2;

private static final String DATABASE_NAME = “notes_db”;

private static final String NOTE_TABLE_NAME = “note”;

private static final String NOTE_COL_ID = “_id”;

private static final String NOTE_COL_TITLE = “title”;

private static final String NOTE_COL_CONTENT = “content”;

private static final String NOTE_COL_CREATED = “created”;

private static final String NOTE_COL_MODIFIED = “modified”;

private static final String[] NOTE_COL_PROJECTION = new String[] {

NOTE_COL_ID,

NOTE_COL_TITLE,

NOTE_COL_CONTENT,

NOTE_COL_CREATED,

NOTE_COL_MODIFIED

};

public NoteDbHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

// Create table

@Override

public void onCreate(SQLiteDatabase db) {

String createNoteTableSql = “CREATE TABLE " + NOTE_TABLE_NAME + " (”

  • NOTE_COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + NOTE_COL_TITLE

  • " TEXT," + NOTE_COL_CONTENT + " TEXT," + NOTE_COL_CREATED

  • " INTEGER," + NOTE_COL_MODIFIED + " INTEGER" + “);”;

db.execSQL(createNoteTableSql);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// Drop older table if existed

db.execSQL("DROP TABLE IF EXISTS " + NOTE_TABLE_NAME);

// Create tables again

onCreate(db);

}

// Add new note

public int addNote(Note note) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(NOTE_COL_TITLE, note.getTitle());

values.put(NOTE_COL_CONTENT, note.getContent());

values.put(NOTE_COL_CREATED, note.getCreated());

values.put(NOTE_COL_MODIFIED, note.getModified());

// Insert to database

long rowId = db.insert(NOTE_TABLE_NAME, null, values);

// Close the database

db.close();

return (int) rowId;

}

// Get one note

public Note getNote(int id) {

SQLiteDatabase db = this.getReadableDatabase();

Cursor cursor = db.query(NOTE_TABLE_NAME, NOTE_COL_PROJECTION,

NOTE_COL_ID + “=?”, new String[] { String.valueOf(id) }, null,

null, null, null);

if (cursor != null)

cursor.moveToFirst();

Note note = new Note(cursor.getInt(0), cursor.getString(1),

cursor.getString(2), cursor.getLong(3), cursor.getLong(4));

return note;

}

// Get all notes

public List getAllNotes() {

List noteList = new ArrayList();

String selectQuery = "SELECT * FROM " + NOTE_TABLE_NAME;

SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery(selectQuery, null);

// looping through all rows and adding to list

if (cursor.moveToFirst()) {

do {

Note note = new Note(cursor.getInt(0), cursor.getString(1),

cursor.getString(2), cursor.getLong(3),

cursor.getLong(4));

noteList.add(note);

} while (cursor.moveToNext());

}

// return contact list

return noteList;

}

public Cursor getAllNotesCursor() {

String selectQuery = "SELECT * FROM " + NOTE_TABLE_NAME;

SQLiteDatabase db = this.getReadableDatabase();

Cursor cursor = db.rawQuery(selectQuery, null);

return cursor;

}

public int updateNote(Note note) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(NOTE_COL_TITLE, note.getTitle());

values.put(NOTE_COL_CONTENT, note.getContent());

values.put(NOTE_COL_CREATED, note.getCreated());

values.put(NOTE_COL_MODIFIED, note.getModified());

return db.update(NOTE_TABLE_NAME, values,

NOTE_COL_ID + “=?”, new String[] { String.valueOf(note.getId()) });

}

public void deleteNote(int noteId) {

SQLiteDatabase db = this.getWritableDatabase();

db.delete(NOTE_TABLE_NAME, NOTE_COL_ID + “=?”,new String[] { String.valueOf(noteId) } );

db.close();

}

public void deleteAllNotes() {

SQLiteDatabase db = this.getWritableDatabase();

db.delete(NOTE_TABLE_NAME, null, null);

db.close();

}

}

新建和修改便签:

package com.zms.notepad;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

/**

  • Created by AlexZhou on 2015/2/3.

  • 11:14

*/

public class NoteNew extends Activity {

private EditText etTitle; //便签标题

private EditText etContent; //便签内容

private Button btnCancel;

private Button btnSave;

private int _noteId; //便签ID

private NoteDbHelper _db;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.note_new);

etTitle = (EditText) findViewById(R.id.etTitle);

etContent = (EditText) findViewById(R.id.etContent);

btnCancel = (Button) findViewById(R.id.btnCancel);

btnSave = (Button) findViewById(R.id.btnSave);

btnCancel.setOnClickListener(new OnClickListenerImp());

btnSave.setOnClickListener(new OnClickListenerImp());

_db = new NoteDbHelper(this);

Intent intent = getIntent();

_noteId = intent.getIntExtra(NoteList.EXTRA_NOTE_ID, -1);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

总结

Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

上面分享的字节跳动公司2020年的面试真题解析大全,笔者还把一线互联网企业主流面试技术要点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。详情可以点击我的【Github】
如果你熟练掌握【Github】中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以我的【Github】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

https://bbs.youkuaiyun.com/topics/618156601)中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以我的【Github】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

[外链图片转存中…(img-V7IMMLUH-1710769809608)]

[外链图片转存中…(img-a9lnl6mQ-1710769809608)]

[外链图片转存中…(img-MWLalRE0-1710769809608)]

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值