热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

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 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文详细介绍了HTML中标签的使用方法和作用。通过具体示例,解释了如何利用标签为网页中的缩写和简称提供完整解释,并探讨了其在提高可读性和搜索引擎优化方面的优势。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文探讨了适用于Spring Boot应用程序的Web版SQL管理工具,这些工具不仅支持H2数据库,还能够处理MySQL和Oracle等主流数据库的表结构修改。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
author-avatar
流寇仏翔_609
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有