Android手机开发设计之记事本功能


当前第2页 返回上一页

记事本主界面包含显示列表和添加按钮功能,我们创建NotepadActivity类实现,其中显示列表在NotepadActivity类中通过创建showQueryData()方法,在该方法中查询数据库存放的记录信息,并将该信息显示到记录列表中,其实现代码如下:

private void showQueryData(){
? ? if(list!=null){
? ? ? ? list.clear();
? ? }
? ? list=mSQLiteHelper.query();
? ? adapter=new NotepadAdapter(this,list);
? ? listView.setAdapter(adapter);
}

为“添加按钮”通过setOnClickListener()方法设置点击事件,当点击该按钮时,跳转到添加记录的界面,其实现代码如下:

protected void onCreate(Bundle savedInstanceState) {
? ? super.onCreate(savedInstanceState);
? ? setContentView(R.layout.activity_main);
? ? listView=findViewById(R.id.listview);
? ? ImageView imageView=findViewById(R.id.add);
? ? initData();
? ? imageView.setOnClickListener(new View.OnClickListener() {
? ? ? ? @Override
? ? ? ? public void onClick(View v) {
? ? ? ? ? ? Intent intent=new Intent(NotepadActivity.this,RecordActivity.class);
? ? ? ? ? ? startActivityForResult(intent,1);
? ? ? ? }
? ? });
}

3.5 RecordActivity类

RecordActivity为修改记录,我们在NotepadActivity中通过listView的setOnItemClickListener()方法监听Item的点击事件,携带被点击Item的记录内容跳转到RecordActivity中,其会根据获取的数据显示记录的内容。另外当我们需要删除记事本列表中的记录时,需要长按列表中的Item,此时会弹出一个对话框提示是否删除Item对应的事件。setOnItemClickListener()方法代码如下:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
? ? ? ? @Override
? ? ? ? public void onItemClick(AdapterView<?>parent,View view,int position,long id ){
? ? ? ? ? ? NotepadBean notepadBean=list.get(position);
? ? ? ? ? ? Intent intent=new Intent(NotepadActivity.this,RecordActivity.class);
? ? ? ? ? ? intent.putExtra("id",notepadBean.getId());
? ? ? ? ? ? intent.putExtra("content",notepadBean.getNotepadContent());
? ? ? ? ? ? intent.putExtra("time",notepadBean.getNotepadTime());
? ? ? ? ? ? NotepadActivity.this.startActivityForResult(intent,1);
? ? ? ? }
? ? });
? ? listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
? ? ? ? @Override
? ? ? ? public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
? ? ? ? ? ? AlertDialog dialog;
? ? ? ? ? ? AlertDialog.Builder builder=new AlertDialog.Builder(NotepadActivity.this)
? ? ? ? ? ? ? ? ? ? .setMessage("是否删除此记录?")
? ? ? ? ? ? ? ? ? ? .setPositiveButton("确定", new DialogInterface.OnClickListener() {
? ? ? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? ? ? public void onClick(DialogInterface dialog, int which) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? NotepadBean notepadBean=list.get(position);
? ? ? ? ? ? ? ? ? ? ? ? ? ? if(mSQLiteHelper.deleteData(notepadBean.getId())){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? list.remove(position);//删除对应的Item
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? adapter.notifyDataSetChanged();//更新记事本页面
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Toast.makeText(NotepadActivity.this,"删除成功",Toast.LENGTH_LONG).show();
? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? ? ? .setNegativeButton("取消", new DialogInterface.OnClickListener() {
? ? ? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? ? ? public void onClick(DialogInterface dialog, int which) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? dialog.dismiss();
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? dialog=builder.create();
? ? ? ? ? ? dialog.show();
? ? ? ? ? ? return true;
? ? ? ? }
});

RecordActivity利用initData()函数接收传递的数据去,其代码如下:

public void initData(){
? ? mSQLiteHelper=new SQLiteHelper(this);
? ? noteName.setText("添加记录");
? ? Intent intent=getIntent();
? ? if(intent!=null){
? ? ? ? id=intent.getStringExtra("id");
? ? ? ? if(id!=null){
? ? ? ? ? ? noteName.setText("修改记录");
? ? ? ? ? ? content.setText(intent.getStringExtra("content"));
? ? ? ? ? ? note_time.setText(intent.getStringExtra("time"));
? ? ? ? ? ? note_time.setVisibility(View.VISIBLE);
? ? ? ? }
? ? }
}

同时,我们在RecordActivity中可以利用switch…case结构实现了编辑记录、保存和清除编辑的记录的功能,即通过EditText控件实现记录的编辑功能,为保存按钮设置点击事件;当点击保存按钮时将记录的内容和保存时间通过SQLiteHelper类的insertData()方法添加到数据库中;为清除按钮设置点击事件,当点击清除按钮时,将EditText控件的内容通过setText()方法置为空字符串。其OnClick()函数代码如下:

public void onClick(View v){
? ? switch (v.getId()){
? ? ? ? case R.id.note_back:
? ? ? ? ? ? finish();
? ? ? ? ? ? break;
? ? ? ? case R.id.delete:
? ? ? ? ? ? content.setText(" ");
? ? ? ? ? ? break;
? ? ? ? case R.id.note_save:
? ? ? ? ? ? String noteContent =content.getText().toString().trim();
? ? ? ? ? ? if(id!=null){
? ? ? ? ? ? ? ? //修改记录的功能
? ? ? ? ? ? ? ? if(noteContent.length()>0){
? ? ? ? ? ? ? ? ? ? if (mSQLiteHelper.updateData(id,noteContent,DBUtils.getTime())){
? ? ? ? ? ? ? ? ? ? ? ? showToast("修改成功");
? ? ? ? ? ? ? ? ? ? ? ? setResult(2);
? ? ? ? ? ? ? ? ? ? ? ? finish();
? ? ? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? showToast("修改失败");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? } else{
? ? ? ? ? ? ? ? ? ? showToast("修改的记录内容不能为空");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? //添加记录的功能
? ? ? ? ? ? ? ? if(noteContent.length()>0){
? ? ? ? ? ? ? ? ? ? if (mSQLiteHelper.insertData(noteContent,DBUtils.getTime())){
? ? ? ? ? ? ? ? ? ? ? ? showToast("保存成功");
? ? ? ? ? ? ? ? ? ? ? ? setResult(2);
? ? ? ? ? ? ? ? ? ? ? ? finish();
? ? ? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? showToast("保存失败");
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? } else{
? ? ? ? ? ? ? ? ? ? showToast("保存的记录内容不能为空");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? }
}

四、项目测试

1、项目运行主界面。

2、点击主界面添加进入添加页面,输入“Android课程设计”然后点击保存按钮会返回主界面并弹出“保存成功”信息。

3、长按我们刚刚新建的记录“Android课程设计”会弹出删除对话框,点击确定即可删除,并弹出“删除成功”信息。

4、选择并打开“20182800”记录,将其修改为“20180000”,然后点击保存按钮,会弹出“修改成功”的信息。


标签:SQLite

返回前面的内容

相关阅读 >>

android创建数据库(Sqlite)保存图片示例

android 使用vitamio打造自己的万能播放器(4)——本地播放(快捷搜索、数据存储)

qt数据库相关应用开发总结

Sqlite数据库管理相关命令的使用介绍

sql在一个表中添加字段并添加备注的方法

python的消息队列包snakemq使用初探

Sqlite3 api 编程手册

深入浅析javascript中数据共享和数据传递

android开发之Sqlite的使用方法

python人工智能实战之对话机器人的实现

更多相关阅读请进入《Sqlite》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...