Android记事本开发

来源:互联网 发布:编程用什么配置的电脑 编辑:程序博客网 时间:2024/05/29 03:12

数据库实现部分          界面设计

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();}// 刷新ListView界面数据public void showView() {setContentView(R.layout.main);listview = (ListView) findViewById(android.R.id.list);// 使用系统默认的listDiaryAdapter diaryAdapter = new DiaryAdapter(this);   // ID资源标识符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());}}// 创建菜单选项public boolean onCreateOptionsMenu(Menu 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);}// 菜单按钮点击事件处理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);}// 单击每个列表项产生的事件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);}// 产生类似于windows上的右键菜单,轻松处理列表中的项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);}// 为上下文菜单写事件public boolean onContextItemSelected(MenuItem item) {// 在上下文菜单中得到点击的item的position,然后可对item进行操作list_position = ((AdapterContextMenuInfo) item.getMenuInfo()).position;// 列表位置从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:showOptional2();case CANCEL:}return super.onContextItemSelected(item);}// 返回主页面时调用的函数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()); // 注意索引IDshowView();}}).setNegativeButton(getResources().getString(R.string.optional_right),new OnClickListener() {public void onClick(DialogInterface dialog,int which) {showView();}}).show();}public void showOptional2() {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(){          //保存按钮点击事件@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); //提交后将输入框清空 text_title.setText(""); text_body.setText(""); button_exit.setText(R.string.resume); text_body.clearFocus();//让焦点回到title上Toast.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;/** * 这个版本的menu菜单是好的,可通过这个来修复新版本的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);// 去掉TitlerequestWindowFeature(Window.FEATURE_NO_TITLE);// 全屏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);}// 创建菜单选项@Overridepublic boolean onCreateOptionsMenu(Menu 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);}// 菜单按钮点击事件处理@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); // 注意索引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() {// 保存按钮点击事件@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 + "]";}}


0 0