Android Development uses SQLite to write diaries

Source: Internet
Author: User
Tags gettext sqlite

Use a database to implement storage of data.

The following previous sample, write a diary.

Effects such as the following:



When no data is displayed in the ListView, we need to tell the user that there is no data.

There are two methods:

1.

Activity inherits Listactivity, which is written in the layout file such as the following:

<textview        android:id= "@id/android:empty"        android:layout_width= "wrap_content"        android:layout_ height= "Wrap_content"        android:text= "you lazy." I haven't started a diary yet. "/>               <listview       <span style=" White-space:pre "></span> android:layout_width=" wrap _content "         android:layout_height=" Wrap_content "         

2.

<span style= "White-space:pre" ></span>if (Adapter.isempty () &&textview==null) {TextView = new TextView (Mainactivity.this); Textview.settext ("The host is very lazy, nothing Left"); Textview.setvisibility (View.gone); ((ViewGroup) listview.getparent ()). AddView (TextView); Listview.setemptyview (TextView);} Else{listview.setadapter (Simplecursoradapter);}

The use of the database (Android itself with SQLite, the false assumption that the use of other databases, it will have to use Web Server):

Inherit Sqliteopenhelper.

Public DBHelper (context context)//database name, database version number public void OnCreate (Sqlitedatabase db)////CREATE database public void Onupgrade (sqlitedatabase db, int oldversion, int newversion)//Update database

Detailed code such as the following:

Cn.edu.bzu.diary.activity

Mainactivity.java

public class Mainactivity extends Activity {listview listview; Cursor diaries;//cursor TextView TextView = null, @Overrideprotected void OnCreate (Bundle savedinstancestate) { Super.oncreate (savedinstancestate); Setcontentview (r.layout.activity_main); listview = (ListView) Findviewbyid ( R.id.listview); Refreshlist (); This.registerforcontextmenu (listview);} /** * Refresh Adapter */public void Refreshlist () {Diarydao Diarydao = new Diarydao (this);d iaries = Diarydao.getalldairies (); Simplecursoradapter simplecursoradapter = new Simplecursoradapter (Mainactivity.this, R.layout.item, diaries, new String[] {"title", "Created"}, new int[] {r.id.title, r.id.created}); if (Simplecursoradapter.isempty () && Textview==null) {TextView = new TextView (mainactivity.this); Textview.settext ("The host is very lazy, nothing left"); Textview.setvisibility (View.gone); ((ViewGroup) listview.getparent ()). AddView (TextView); Listview.setemptyview (TextView);} Else{listview.setadapter (Simplecursoradapter);}} @Overridepublic void Oncreatecontextmenu (CONTEXTMENU menu, View v,contextmenuinfo menuinfo) {menu.setheadertitle ("operation"), Menu.add (0, 1, menu.none, "edit"), Menu.add (0, 2, Menu.none, "delete"); Super.oncreatecontextmenu (menu, V, menuinfo);} @Overridepublic boolean oncontextitemselected (MenuItem Item) {//Oncontextitemselectedadaptercontextmenuinfo Menuinfo = (adaptercontextmenuinfo) item.getmenuinfo (); switch (Item.getitemid ()) {case 1:intent Intent = new Intent (); Bundle bundle = new bundle (); Bundle.putint ("id", (int) menuinfo.id); Intent.putextras (bundle); Intent.setclass ( Mainactivity.this, Diaryeditacitivity.class); startactivity (intent); break;case 2:diarydao dao = new Diarydao ( Mainactivity.this);d ao.delete ((int) menuinfo.id);//menuinfo.id is consistent with the database ID refreshlist (); break;} return super.oncontextitemselected (item);} /** * In the Exit diary join. Use the life cycle to refresh adapter */@Overrideprotected void Onresume () {super.onresume (); Refreshlist ();} @Overridepublic boolean Oncreateoptionsmenu (Menu menu) {getmenuinflater (). Inflate (R.menu.main, menu); return true;} /** * Enter "journal join page" via menu */@OveRridepublic boolean onoptionsitemselected (MenuItem item) {switch (Item.getitemid ()) {case R.id.save:intent Intent = new I Ntent (); Intent.setclass (Mainactivity.this, Diaryaddacitivity.class); startactivity (intent); break;} return super.onoptionsitemselected (item);}}


Diaryaddacitivity.java

public class Diaryaddacitivity extends Activity {Diarydao Diarydao = new Diarydao (diaryaddacitivity.this); Button button; EditText edittext,edittext2; @Overrideprotected void OnCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (r.layout.diaryadd_acitivity); editText = (EditText) Findviewbyid (r.id.et_ DIARYADD);//Title EDITTEXT2 = (EditText) Findviewbyid (r.id.et02_diaryadd);//Content button = (button) Findviewbyid (r.id.but);} @Overridepublic boolean Oncreateoptionsmenu (Menu menu) {//Inflate the menu; This adds items to the action bar if it is PR Esent.getmenuinflater (). Inflate (r.menu.diary_add_acitivity, menu); return true;} public void Click (View view) {String title = Edittext.gettext (). toString (); String content = Edittext2.gettext (). toString ();D iary Diary = new Diary (title, Content, Tool.datechange (new Date ()));D Iarydao Diarydao = new Diarydao (this);d Iarydao.save (diary); Finish ();}}

Diaryeditacitivity.java

public class Diaryeditacitivity extends Activity {Diarydao Diarydao = new Diarydao (diaryeditacitivity.this); Button button; EditText edittext,edittext2;int ID; @Overrideprotected void onCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (r.layout.diaryadd_acitivity); editText = (EditText) Findviewbyid (r.id.et_ DIARYADD);//Title EDITTEXT2 = (EditText) Findviewbyid (r.id.et02_diaryadd);//Content button = (button) Findviewbyid (r.id.but);  Bundle bundle = This.getintent (). Getextras (); if (bundle!=null) {id = bundle.getint ("id");D iary Diary = Diarydao.getdiarybyid (ID); Edittext.settext (Diary.gettitle ()); Edittext2.settext (Diary.getcontent ());}} @Overridepublic boolean Oncreateoptionsmenu (Menu menu) {//Inflate the menu; This adds items to the action bar if it is PR Esent.getmenuinflater (). Inflate (r.menu.diary_add_acitivity, menu); return true;} public void Click (View view) {String title = Edittext.gettext (). toString (); String content = Edittext2.gettext (). toString ();D iary Diary = new Diary (title, Content, Tool.datechange (new Date ()));d Iary.setid (ID);D Iarydao diarydao = new Diarydao (this); Diarydao.update (diary); Finish ();}}

Cn.edu.bzu.diary.daoDiarydao.java

public class Diarydao {private DBHelper dbhelper;private sqlitedatabase sqlitedatabase;public Diarydao (context context) {dbhelper = new DBHelper (context);} /** * Added Diary * @param diary */public void Save (Diary diary) {String sql = "INSERT into diary (title,content,created) VALUES ( ?,?,?

) "; sqlitedatabase = Dbhelper.getwritabledatabase (); Sqlitedatabase.execsql (Sql,new string[] {diary.getTitle (), Diary.getcontent (), Diary.getdatetime ()}); /** * Delete Journal by ID * * @param ID * Journal ID number */public void delete (Integer id) {sqlitedatabase = dbhelper.getwritabled Atabase ();//Get the same DB instance Sqlitedatabase.execsql ("Delete from diary where _id=?").

", new object[] {ID});} /** * Update Journal * * @param diary */public void Update (Diary diary) {Sqlitedatabase = Dbhelper.getwritabledatabase ();//Get the same DB instance Sqlitedatabase.execsql ("Update diary set title=?,content=?,created=?") Where _id=? ", new object[] {diary.gettitle (), Diary.getcontent (), Diary.getdatetime (), Diary.getid ()});} /** * Returns a cursor. You can also use the Gaze section. Returns a list collection (using Simpleadapter), where cursors are used, mainly because the ID in * Adaptercontextmenuinfo is consistent with the database * @return cursor */public cursor getal Ldairies () {//diary Diary = null;//list<diary> Diaries = new arraylist<diary> (); sqlitedatabase = Dbhelper.getreadabledatabase (); cursor cursor = sqlitedatabase.rawquery ("Select * from Diary", NULL);/* * while (Cursor.movetonext ()) {String title = * CU Rsor.getstring (Cursor.getcolumnindex ("title")); String content = * Cursor.getstring (cursor.getcolumnindex ("content")); String created = * Cursor.getstring (Cursor.getcolumnindex ("created")); Diary = new * Diary (title, content, created); Diaries.add (diary); } */return curSor;} /** * Gets the total number of records */public Long Count () {Long Count = 0;sqlitedatabase = Dbhelper.getreadabledatabase (); cursor cursor = sqlitedatabase.rawquery ("SELECT count (*) from diary", null); Cursor.movetofirst (); count = Cursor.getlong (0); return count;} Public Diary Getdiarybyid (int id) {sqlitedatabase = Dbhelper.getwritabledatabase ();D iary Diary = null; cursor cursor = sqlitedatabase.rawquery ("Select * from Diary where _id=?", new string[] {id + "}"); if (Cursor.movetofir St ()) {String title = cursor.getstring (Cursor.getcolumnindex ("title")); String content = cursor.getstring (Cursor.getcolumnindex ("content")); String created = cursor.getstring (Cursor.getcolumnindex ("created"));d iary = new Diary (title, content, created);} return diary;}}

Cn.edu.bzu.diary.dbDBHelper.java

public class DBHelper  extends sqliteopenhelper{public static final String database_name= "diary.db";p ublic static final int VERSION = 1; The name of the database. Database version number public DBHelper (context context) {Super (context, database_name, NULL, version);//TODO auto-generated constructor stub}//Create DATABASE, field: ID (primary key), title,content,created. @Overridepublic void OnCreate (Sqlitedatabase db) {//TODO auto-generated method Stubdb.execsql ("CREATE Table Diary (_id in Teger PRIMARY key Autoincrement,title varchar (), content varchar (+), created) "); Update for database @overridepublic void Onupgrade (sqlitedatabase db, int oldversion, int newversion) {//TODO auto-generated Metho D stub}}

Cn.edu.bzu.diary.entityDiary.java

public class Diary {private Integer id;private string title;private string Content;private string Datetime;public Diary () { }public Diary (String title,string content,string datetime) {this.title = Title;this.content = Content;this.datetime = datetime;} Public Integer GetId () {return ID;} public void SetId (Integer id) {this.id = ID;} Public String GetTitle () {return title;} public void Settitle (String title) {this.title = title;} Public String getcontent () {return content;} public void SetContent (String content) {this.content = content;} Public String GetDateTime () {return datetime;} public void SetDateTime (String datetime) {this.datetime = datetime;} @Overridepublic String toString () {return "Diary [title=" + title + ", content=" + content + ", datetime=" + datetime + "]" ;}}

Cn.edu.bzu.diary.toolsTool.java
public class Tool {/** * time display style * @param date * @return */public static String datechange (date date) {SimpleDateFormat Simp Ledateformat = new SimpleDateFormat ("yyyy mm DD day hh: mm: ss sec"); return Simpledateformat.format (date);}}

Code











Android Development uses SQLite to write diaries

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.