本文实例为大家分享了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); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。