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);
     }
    }

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