欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android实现简易记事本

程序员文章站 2022-06-25 11:55:48
本文实例为大家分享了android实现简易记事本的具体代码,供大家参考,具体内容如下下面实现了一个简易的记事本,效果如下:主要使用数据库存储数据。完整代码链接:android实现简易记事本下面是部分代...

本文实例为大家分享了android实现简易记事本的具体代码,供大家参考,具体内容如下

下面实现了一个简易的记事本,效果如下:

Android实现简易记事本

Android实现简易记事本

主要使用数据库存储数据。

完整代码链接:android实现简易记事本

下面是部分代码:

mainactivity:

public class mainactivity extends appcompatactivity implements view.onclicklistener {

 private edittext subject;
 private edittext body;
 private edittext date;
 private button choosedate;
 private button add;
 private button query;
 private listview result;
 private linearlayout title;
 private mydatabasehelper mmydatabasehelper;
 @override
 protected void oncreate(bundle savedinstancestate) {
 super.oncreate(savedinstancestate);
 setcontentview(r.layout.activity_main);
 initview();
 }

 private void initview() {
 //控件初始化
 subject=(edittext)findviewbyid(r.id.subject);
 body=(edittext)findviewbyid(r.id.body);
 date=(edittext)findviewbyid(r.id.date);
 choosedate=(button)findviewbyid(r.id.choosedate);
 add=(button)findviewbyid(r.id.add);
 query=(button)findviewbyid(r.id.query);
 result=(listview)findviewbyid(r.id.result);
 title=(linearlayout)findviewbyid(r.id.title);

 //选择日期,添加,查询的监听事件
 choosedate.setonclicklistener(this);
 add.setonclicklistener(this);
 query.setonclicklistener(this);
 //查询情况默认隐藏,只有点击查询时才有效果
 title.setvisibility(view.invisible);
 }

 @override
 public void onclick(view v) {
 //创建数据库
 mmydatabasehelper=new mydatabasehelper(mainactivity.this,"memento.db",null,1);
 sqlitedatabase sqlitedatabase=mmydatabasehelper.getreadabledatabase();
 //获取输入框的内容
 string strsubject=subject.gettext().tostring().trim();
 string strbody=body.gettext().tostring().trim();
 string strdate=date.gettext().tostring().trim();

 switch (v.getid()){
 case r.id.choosedate:
 calendar calendar=calendar.getinstance();
 //选择时间,并将时间设置在date中
 new datepickerdialog(mainactivity.this, new datepickerdialog.ondatesetlistener() {
  @override
  public void ondateset(datepicker view, int year, int month, int dayofmonth) {
  date.settext(year+"-"+month+"-"+dayofmonth);
  }
 },calendar.get(calendar.year),calendar.get(calendar.month),calendar.get(calendar.day_of_month)).show();
 break;
 case r.id.add:
 //添加内容到数据库中,添加方法是add
 title.setvisibility(view.invisible);
 add(sqlitedatabase,strsubject,strbody,strdate);
 toast.maketext(this, "success!", toast.length_short).show();
 result.setadapter(null);
 break;
 case r.id.query:
 //查询时显示结果设置为visible
 title.setvisibility(view.visible);
 //查询的结果保存在cursor中
 cursor cursor=query(sqlitedatabase,strsubject,strbody,strdate);
 simplecursoradapter simplecursoradapter=new simplecursoradapter(mainactivity.this,r.layout.result,cursor,new string[]{"_id", "subject", "body", "date"},
  new int[]{r.id.memento_num, r.id.memento_subject, r.id.memento_body, r.id.memento_date});
 //为listview添加适配器
 result.setadapter(simplecursoradapter);
 break;
 }
 }

 //添加数据到数据库中的方法
 public void add(sqlitedatabase sqlitedatabase,string subject,string body,string date){
 sqlitedatabase.execsql("insert into memento_tb values(null,?,?,?)",new string[]{subject,body,date});
 //初始设置为空
 this.subject.settext("");
 this.body.settext("");
 this.date.settext("");
 }

 //查询的方法,返回值为cursor
 public cursor query(sqlitedatabase sqlitedatabase, string subject, string body, string date){
 cursor cursor = sqlitedatabase.rawquery(
 "select * from memento_tb where subject like ? and body like ? and date like ? ",
 new string[]{"%" + subject + "%", "%" + body + "%",
  "%" + date + "%"});//对表的查询(insert的操作)
 return cursor;
 }

 protected void ondestroy() {
 super.ondestroy();
 if (mmydatabasehelper != null) {
 mmydatabasehelper.close();
 }
 }
}

mydatabasehelper:

public class mydatabasehelper extends sqliteopenhelper {
 //创建数据库的语句
 final string create_table_sql =
 "create table memento_tb(_id integer primary " +
  "key autoincrement,subject,body,date)"; //建表


 public mydatabasehelper(context context, string name, sqlitedatabase.cursorfactory factory, int version) {
 super(context, name, factory, version);
 }

 //执行建表的操作
 @override
 public void oncreate(sqlitedatabase db) {
 db.execsql(create_table_sql);
 }

 @override
 public void onupgrade(sqlitedatabase db, int oldversion, int newversion) {
 system.out.println("---------" + oldversion + "------->" + newversion);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: Android 记事本