Android 开发简单记事本程序(附源码)
生活随笔
收集整理的這篇文章主要介紹了
Android 开发简单记事本程序(附源码)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 簡單介紹一下功能:簡單記事本只能添加文字內容,首頁用ListView顯示所有保存的事項和保存的時間,添加頁面添加內容,點擊首頁的ListView可以查看內容,刪除內容。
? ? 先看一下運行效果:
先建立數據庫:
package com.engineer.shizhibin.note;import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;public class NoteDb extends SQLiteOpenHelper {public static final String TABLE_NAME = "notes";public static final String CONTENT = "content";public static final String ID = "_id";public static final String TIME = "time";public NoteDb(Context context) {super(context, "notes", null,1);}@Overridepublic void onCreate(SQLiteDatabase db) {String sql ="create table "+TABLE_NAME+" ( "+ID+" integer primary key AUTOINCREMENT, "+CONTENT+" TEXT NOT NULL, "+TIME+" TEXT NOT NULL )";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {} }?
然后是MainActivity:
?
????有顯示目錄的ListView,和添加按鈕。他們都要設置點擊監聽事件。點擊添加 跳轉到添加文字的activity 點擊ListView跳轉到Show Activity。
?
onResume() 在 Activity 從 Pause 狀態轉換到 Active 狀態時被調用。在這個方法中訪問SQLite數據庫,通過Adapter將條目的內容和添加時間顯示在ListView中。看代碼: package com.engineer.shizhibin.note;import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.ListView;public class MainActivity extends AppCompatActivity {private Button mButton;private ListView mList;private Intent mIntent;private MyAdapter mAdapter;private NoteDb mNotedb;private Cursor cursor;private SQLiteDatabase dbreader;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mList = (ListView) this.findViewById(R.id.list);mNotedb = new NoteDb(this);dbreader = mNotedb.getReadableDatabase();mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {cursor.moveToPosition(i);Intent intent = new Intent(MainActivity.this,ShowContent.class);intent.putExtra(NoteDb.ID,cursor.getInt(cursor.getColumnIndex(NoteDb.ID)));intent.putExtra(NoteDb.CONTENT,cursor.getString(cursor.getColumnIndex(NoteDb.CONTENT)));intent.putExtra(NoteDb.TIME,cursor.getString(cursor.getColumnIndex(NoteDb.TIME)));startActivity(intent);}});}public void add(View v) {mIntent = new Intent(MainActivity.this,AddContent.class);startActivity(mIntent);}public void selectDb() {cursor = dbreader.query(NoteDb.TABLE_NAME,null,null,null,null,null,null);mAdapter = new MyAdapter(this,cursor);mList.setAdapter(mAdapter);}@Overrideprotected void onResume() {super.onResume();selectDb();} }? ? 為了方便程序擴展,以后有可能添加圖片、視頻內容 我用了自定義的Adapter 繼承自BadeAdapter:
package com.engineer.shizhibin.note;import android.content.Context; import android.database.Cursor; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView;public class MyAdapter extends BaseAdapter {private Context mContext;private Cursor mCursor;private LinearLayout mLayout;public MyAdapter(Context mContext,Cursor mCursor) {this.mContext = mContext;this.mCursor = mCursor;}@Overridepublic int getCount() {return mCursor.getCount();}@Overridepublic Object getItem(int position) {return mCursor.getPosition();}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View view, ViewGroup viewGroup) {LayoutInflater inflater = LayoutInflater.from(mContext);mLayout = (LinearLayout) inflater.inflate(R.layout.item,null);TextView content = (TextView) mLayout.findViewById(R.id.list_content);TextView time = (TextView) mLayout.findViewById(R.id.list_time);mCursor.moveToPosition(position);String dbcontext = mCursor.getString(mCursor.getColumnIndex("content"));String dbtime = mCursor.getString(mCursor.getColumnIndex("time"));content.setText(dbcontext);time.setText(dbtime);return mLayout;} }添加條目,向數據中添加數據用ContentValues以鍵值對的方式 非常方便:
package com.engineer.shizhibin.note;import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText;import java.text.SimpleDateFormat; import java.util.Date;public class AddContent extends AppCompatActivity {private EditText mEt;private NoteDb mDb;private SQLiteDatabase mSqldb;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_add_content);mEt = (EditText) this.findViewById(R.id.text);mDb = new NoteDb(this);mSqldb = mDb.getWritableDatabase();}public void save(View v) {DbAdd();finish();}public void cancle(View v) {mEt.setText("");finish();}public void DbAdd() {ContentValues cv = new ContentValues();cv.put(NoteDb.CONTENT,mEt.getText().toString());cv.put(NoteDb.TIME,getTime());mSqldb.insert(NoteDb.TABLE_NAME,null,cv);}public String getTime() {SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");Date date = new Date();String str = sdf.format(date);return str;} }查看條目:
package com.engineer.shizhibin.note;import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView;public class ShowContent extends AppCompatActivity {private TextView mTextview;private TextView time;private NoteDb mDb;private SQLiteDatabase mSql;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_show_content);mTextview = (TextView)this.findViewById(R.id.showtext);time = (TextView)this.findViewById(R.id.showtime);mDb = new NoteDb(this);mSql = mDb.getWritableDatabase();mTextview.setText(getIntent().getStringExtra(NoteDb.CONTENT));time.setText(getIntent().getStringExtra(NoteDb.TIME));}public void delete(View v) {int id = getIntent().getIntExtra(NoteDb.ID,0);mSql.delete(NoteDb.TABLE_NAME," _id = " + id,null);finish();}public void goBack(View v) {finish();} }MainActivity布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/back"tools:context="com.engineer.shizhibin.note.MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/add"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="添加"android:onClick="add"/></LinearLayout><ListViewandroid:id="@+id/list"android:layout_width="match_parent"android:layout_height="wrap_content"android:textColor="#000"android:layout_marginTop="20dp"></ListView></LinearLayout>添加Activity布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/back"tools:context="com.engineer.shizhibin.note.AddContent"><EditTextandroid:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="top"android:textColor="#000"android:hint="有了記事本,我再也不會忘記事情了!"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"><Buttonandroid:id="@+id/save"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="保存"android:onClick="save"/><Buttonandroid:id="@+id/cancle"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="取消"android:onClick="cancle"/></LinearLayout> </LinearLayout>查看頁布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:orientation="vertical"android:background="@drawable/back"android:layout_height="match_parent"tools:context="com.engineer.shizhibin.note.ShowContent"><TextViewandroid:id="@+id/showtime"android:layout_width="match_parent"android:layout_height="30dp"android:layout_marginLeft="10dp"android:textSize="20sp"/><TextViewandroid:id="@+id/showtext"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="20sp"android:gravity="top"android:layout_weight="1"android:layout_marginTop="10dp"android:layout_marginLeft="10dp"android:textColor="#000"android:hint="有了記事本,我再也不會忘記事情了!"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"><Buttonandroid:id="@+id/delete"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="刪除"android:onClick="delete"/><Buttonandroid:id="@+id/back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="返回"android:onClick="goBack"/></LinearLayout> </LinearLayout>ListView布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_gravity="center_vertical"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/list_content"android:textColor="#000"android:textSize="20sp"android:text="tv"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/list_time"android:textColor="#000"android:textSize="20sp"android:text="time"/></LinearLayout> </LinearLayout>以上就是所有源碼,明白Android目錄結構,復制到相應的地方,就可以運行了!!!
?
? ??
?
總結
以上是生活随笔為你收集整理的Android 开发简单记事本程序(附源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [词根词缀]reg/rept/rid/r
- 下一篇: 联发科射频工程师题目_【MTK联发科技射