Interface Design for database implementation
Package com. jk; import java. util. list; import android. app. alertDialog; import android. app. listActivity; import android. content. context; import android. content. dialogInterface; import android. content. dialogInterface. onClickListener; import android. content. intent; import android. database. sqlite. SQLiteDatabase; import android. OS. bundle; import android. view. contextMenu; import android. view. contextMenu. contextMenuInfo; import android. view. layoutInflater; import android. view. menu; import android. view. menuItem; import android. view. view; import android. view. viewGroup; import android. widget. adapterView. adapterContextMenuInfo; import android. widget. baseAdapter; import android. widget. listView; import android. widget. textView; import android. widget. toast; import com. jk. r; import com. jk. service. dbHelper; import com. jk. service. diaryAdapter; public class MainActivity extends ListActivity {private static final int NEWDIARY = 0; private static final int HELP = 1; private static final int EXIT = 2; private static final int EDIT = 1; private static final int DELETE = 2; private static final int CANCEL = 4; private static final int DELETEALL = 3; private ListView listview; private int list_position; private DbHelper dbOpenHelper; private MyAdapter adapter; private List <Diary> mData; public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); dbOpenHelper = new DbHelper (this); showView () ;}// refresh the data public void showView () {setContentView (R. layout. main); listview = (ListView) findViewById (android. r. id. list); // use the system's default listDiaryAdapter diaryAdapter = new DiaryAdapter (this); // ID Resource Identifier setTitle (getResources (). getString (R. string. app_name) + getResources (). getString (R. string. gongyou) + "" + (int) diaryAdapter. getCount () + "" + getResources (). getText (R. string. pianriji); if (int) diaryAdapter. getCount () = 0) {setTitle (getResources (). getString (R. string. app_name) + getResources (). getString (R. string. no_diary); Toast. makeText (MainActivity. this, R. string. no_data, 1 ). show ();} else {mData = diaryAdapter. getScrollData (0, (int) diaryAdapter. getCount (); adapter = new MyAdapter (this); listview. setAdapter (adapter); registerForContextMenu (getListView () ;}}// create Menu option public boolean onCreateOptionsMenu (menu) {Menu. add (0, NEWDIARY, 0, R. string. menu_newDiary ). setIcon (android. r. drawable. ic_menu_crop); menu. add (0, HELP, 0, R. string. menu_help ). setIcon (android. r. drawable. ic_menu_help); menu. add (0, EXIT, 0, R. string. menu_exit ). setIcon (android. r. drawable. ic_menu_close_clear_cancel); return super. onCreateOptionsMenu (menu);} // Click Event Processing public boolean onOptionsItemSelected (MenuItem item) {Intent intent = null; switch (item. getItemId () {case NEWDIARY: intent = new Intent (MainActivity. this, NewDiaryActivity. class); startActivity (intent); break; case HELP: intent = new Intent (MainActivity. this, About. class); startActivity (intent); break; case EXIT: finish (); break;} return super. onOptionsItemSelected (item);} // click the event protected void onListItemClick (ListView l, View v, int position, long id) {super. onListItemClick (l, v, position, id); Intent intent = new Intent (); intent. putExtra ("id", mData. get (position ). getId (); intent. putExtra ("title", mData. get (position ). getTitle (); intent. putExtra ("body", mData. get (position ). getBody (); intent. putExtra ("time", mData. get (position ). getTime (); intent. setClass (MainActivity. this, ShowSingleDiary. class); startActivity (intent);} // generate a shortcut menu similar to that on windows. It is easy to process the public void onCreateContextMenu (ContextMenu menu, View v, ContextMenuInfo menuInfo) {super. onCreateContextMenu (menu, v, menuInfo); menu. setHeaderTitle (R. string. option ). add (0, EDIT, 0, R. string. contextmenu_enter); menu. add (0, DELETE, 0, R. string. contextmenu_delete); menu. add (0, DELETEALL, 0, R. string. delete_all); menu. add (0, CANCEL, 0, R. string. new_cancelButton);} // write the event public boolean onContextItemSelected (MenuItem item) for the context menu {// obtain the position of the clicked item from the context menu, then you can operate the item list_position = (AdapterContextMenuInfo) item. getMenuInfo ()). position; // The position of the list starts from 0. Intent intent = new Intent (); switch (item. getItemId () {case EDIT: intent. putExtra ("id", mData. get (list_position ). getId (); intent. putExtra ("title", mData. get (list_position ). getTitle (); intent. putExtra ("body", mData. get (list_position ). getBody (); intent. setClass (MainActivity. this, UpdateDiaryActivity. class); startActivity (intent); break; case DELETE: showOptional (); break; case DELETEALL: showOptional (); case CANCEL:} return super. onContextItemSelected (item);} // The protected void onRestart () {super. onRestart (); showView ();} public void showOptional () {new AlertDialog. builder (this ). setTitle (R. string. alertDialog_title ). setMessage (getResources (). getString (R. string. optional_msg )). setPositiveButton (getResources (). getString (R. string. optional_left), new OnClickListener () {public void onClick (DialogInterface dialog, int which) {DiaryAdapter adapter = new DiaryAdapter (MainActivity. this); adapter. delete (mData. get (list_position ). getId (); // pay attention to index IDshowView ();}}). setNegativeButton (getResources (). getString (R. string. optional_right), new OnClickListener () {public void onClick (DialogInterface dialog, int which) {showView ();}}). show ();} public void showoptional2o3 () {new AlertDialog. builder (this ). setTitle (R. string. alertDialog_title ). setMessage (getResources (). getString (R. string. optional_msg )). setPositiveButton (getResources (). getString (R. string. optional_left), new OnClickListener () {public void onClick (DialogInterface dialog, int which) {SQLiteDatabase db = dbOpenHelper. getWritableDatabase (); db. delete ("diary", null, null); db. close (); Toast. makeText (MainActivity. this, R. string. toast_deleteAll, 0 ). show (); showView ();}}). setNegativeButton (getResources (). getString (R. string. optional_right), new OnClickListener () {public void onClick (DialogInterface dialog, int which) {showView ();}}). show ();} class MyAdapter extends BaseAdapter {ViewHolder holder; private LayoutInflater mInflater; public MyAdapter (Context context) {this. mInflater = LayoutInflater. from (context);} public int getCount () {return mData. size ();} public Object getItem (int arg0) {return null;} public long getItemId (int position) {return 0;} public View getView (int position, View convertView, viewGroup parent) {if (convertView = null) {holder = new ViewHolder (); convertView = mInflater. inflate (R. layout. diary_item, null); holder. id = (TextView) convertView. findViewById (R. id. item_id); holder. title = (TextView) convertView. findViewById (R. id. item_title); holder. body = (TextView) convertView. findViewById (R. id. item_preRead); holder. time = (TextView) convertView. findViewById (R. id. item_time); convertView. setTag (holder);} else {holder = (ViewHolder) convertView. getTag ();} holder. id. setText (mData. get (position ). getId () + ""); holder. title. setText (mData. get (position ). getTitle (); holder. body. setText (mData. get (position ). getBody (); holder. time. setText (mData. get (position ). getTime (); return convertView ;}}}
Package com. jk; import java. SQL. date; import com. jk. r; import com. jk. service. diaryAdapter; import android. app. activity; import android. OS. bundle; import android. view. view; import android. widget. button; import android. widget. editText; import android. widget. toast; public class NewDiaryActivity extends Activity {private Button button_save; private Button button_exit; private EditText text_title; private EditText text_body; @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. newdiary); findView (); setListener ();} public void findView () {setTitle (R. string. createNew); button_save = (Button) findViewById (R. id. new_save); button_exit = (Button) findViewById (R. id. new_cancel); text_title = (EditText) findViewById (R. id. text_title); text_body = (EditText) findViewById (R. id. text_body); text_title.setHint (R. string. title_hint); text_body.setHint (R. string. body_hint);} public void setListener () {button_save.setOnClickListener (new View. onClickListener () {// Save button click event @ Overridepublic void onClick (View v) {DiaryAdapter adapter = new DiaryAdapter (NewDiaryActivity. this); Diary diary = new Diary (text_title.getText (). toString (), text_body.getText (). toString (), new Date (System. currentTimeMillis ()). toString (); adapter. save (diary); // after submission, clear the input box text_title.setText (""); text_body.setText (""); button_exit.setText (R. string. resume); text_body.clearFocus (); // return the focus to Toast on the title. makeText (NewDiaryActivity. this, R. string. toast_save, 0 ). show () ;}}); button_exit.setOnClickListener (new View. onClickListener () {@ Overridepublic void onClick (View v) {finish ();}});}}
Package com. jk; import com. jk. r; import com. jk. r. id; import com. jk. r. layout; import com. jk. r. string; import com. jk. service. diaryAdapter; import android. app. activity; import android. app. alertDialog; import android. content. dialogInterface; import android. content. intent; import android. content. dialogInterface. onClickListener; import android. OS. bundle; import android. view. menu; import android. view. menuItem; import android. view. window; import android. view. windowManager; import android. widget. textView;/*** this version of menu is good. You can use this to fix the new menu * @ author Administrator **/public class ShowSingleDiary extends Activity {private TextView view_id; private TextView view_title; private TextView view_body; private TextView view_time; int id; private static final int MODIFY = 0; private static final int NEW = 1; private static final int DELETE = 2; @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); // remove TitlerequestWindowFeature (Window. FEATURE_NO_TITLE); // full screen getWindow (). setFlags (WindowManager. layoutParams. FLAG_FULLSCREEN, WindowManager. layoutParams. FLAG_FULLSCREEN); showView ();} public void showView () {Intent intent = getIntent (); id = intent. getIntExtra ("id", 0); String title = intent. getStringExtra ("title"); String body = intent. getStringExtra ("body"); String time = intent. getStringExtra ("time"); setContentView (R. layout. show_single_diary); view_id = (TextView) findViewById (R. id. simple_text_id); view_title = (TextView) findViewById (R. id. simple_text_title); view_body = (TextView) findViewById (R. id. simple_text_body); view_time = (TextView) findViewById (R. id. simple_text_time); view_id.setText (id + ""); view_title.setText (title); view_body.setText (body); view_time.setText (time); view_id.setVisibility (TextView. INVISIBLE);} // create Menu option @ Overridepublic boolean onCreateOptionsMenu (menu) {Menu. add (0, MODIFY, 0, R. string. contextmenu_enter ). setIcon (android. r. drawable. ic_menu_crop); menu. add (0, NEW, 0, R. string. menu_newDiary ). setIcon (android. r. drawable. btn_star_big_on); menu. add (0, DELETE, 0, R. string. contextmenu_delete ). setIcon (android. r. drawable. ic_menu_help); return super. onCreateOptionsMenu (menu);} // Click Event Processing @ Overridepublic boolean onOptionsItemSelected (MenuItem item) {Intent intent = new Intent (); switch (item. getItemId () {case MODIFY: intent. putExtra ("id", id); intent. putExtra ("title", view_title.getText (); intent. putExtra ("body", view_body.getText (); intent. setClass (ShowSingleDiary. this, UpdateDiaryActivity. class); startActivity (intent); break; case NEW: intent. setClass (ShowSingleDiary. this, NewDiaryActivity. class); startActivity (intent); break; case DELETE: showOptional (); break;} return super. onOptionsItemSelected (item);} private void showOptional () {new AlertDialog. builder (this ). setTitle (R. string. alertDialog_title ). setMessage (getResources (). getString (R. string. optional_msg )). setPositiveButton (getResources (). getString (R. string. optional_left), new OnClickListener () {public void onClick (DialogInterface dialog, int which) {DiaryAdapter adapter = new DiaryAdapter (ShowSingleDiary. this); adapter. delete (id); // note that the index IDfinish ();}}). setNegativeButton (getResources (). getString (R. string. optional_right), new OnClickListener () {public void onClick (DialogInterface dialog, int which) {showView ();}}). show ();}}
Package com. jk; import java. SQL. date; import android. app. activity; import android. content. intent; import android. OS. bundle; import android. view. view; import android. widget. button; import android. widget. editText; import android. widget. toast; import com. jk. r; import com. jk. r. id; import com. jk. r. layout; import com. jk. r. string; import com. jk. service. diaryAdapter; public class UpdateDiaryActivity extends Activity {private EditText text_title; private EditText text_body; private Button button_save; private Button button_exit; private int id; private String title; private String body; protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. newdiary); showView (); setListener ();} public void showView () {Intent intent = getIntent (); id = intent. getIntExtra ("id", 0); title = intent. getStringExtra ("title"); body = intent. getStringExtra ("body"); setTitle (R. string. title_update); text_title = (EditText) findViewById (R. id. text_title); text_body = (EditText) findViewById (R. id. text_body); button_save = (Button) findViewById (R. id. new_save); button_exit = (Button) findViewById (R. id. new_cancel); text_title.setText (title); text_body.setText (body);} public void setListener () {button_save.setOnClickListener (new View. onClickListener () {// Save button click event @ Overridepublic void onClick (View v) {DiaryAdapter adapter = new DiaryAdapter (UpdateDiaryActivity. this); Diary diary = new Diary (text_title.getText (). toString (), text_body.getText (). toString (), new Date (System. currentTimeMillis ()). toString (); diary. setId (id); adapter. update (diary); Toast. makeText (UpdateDiaryActivity. this, R. string. toast_Update, 1 ). show (); finish () ;}}); button_exit.setOnClickListener (new View. onClickListener () {public void onClick (View v) {finish ();}});}}
package com.jk;import android.widget.TextView;public class ViewHolder {public TextView id;public TextView title; public TextView body; public TextView time; }
package com.jk;import com.jk.R;import com.jk.R.id;import com.jk.R.layout;import com.jk.R.string;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class About extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setTheme(android.R.style.Theme_Dialog);setContentView(R.layout.about);setTitle(R.string.about_window_title);TextView textView = (TextView) findViewById(R.id.about_title),textView2 = (TextView)findViewById(R.id.about_msg);textView.setText(R.string.about_title);textView2.setText(" " + getResources().getString(R.string.about_msg));}}
package com.jk;public class Diary {private int diaryId;private String title;private String body;private String time;public Diary(int diaryId, String title, String body, String time) {this.diaryId = diaryId;this.title = title;this.body = body;this.time = time;}public Diary( String title, String body, String time) {this(0, title, body ,time);}public int getId() {return diaryId;}public void setId(int diaryId) {this.diaryId = diaryId;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String toString() {return "Diary [diaryId=" + diaryId + ", title=" + title + ", body="+ body + ", time=" + time + "]";}}