首页 > 其他分享 >Android开发_记事本(6)

Android开发_记事本(6)

时间:2023-04-10 19:46:56浏览次数:42  
标签:int DialogInterface 开发 new Android data id 记事本 op

删除键的功能实现

删除当前笔记文件

EditActivity中

添加

@Override
public boolean onOptionsItemSelected(MenuItem item){      //监听状态栏上内容被点击
    switch (item.getItemId()){
        case R.id.delete:
            new AlertDialog.Builder(EditActivity.this)//创建一个点击按钮后出现的对话框选项(是or否删除)
                    .setMessage("删除吗?")
                    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {//点击是按钮后的反应
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            if (openMode == 4){ // new note
                                intent.putExtra("mode", -1);
                                setResult(RESULT_OK, intent);
                            }
                            else { // existing note
                                intent.putExtra("mode", 2);
                                intent.putExtra("id", id);  //笔记id
                                setResult(RESULT_OK, intent);
                            }
                            finish();
                        }               //这部分的数据会被传回MianActivity,OnActivityForResult接受
                    }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {//点击取消,关闭弹出的对话框
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    }).create().show();      //builder相当于模型,create和show创建、显示出来上面的模型
            break;
    }
    return super.onOptionsItemSelected(item);
}

如果点击删除按钮,上面的代码传回MainActivity一个“2”值

下面在MainActivity中接收

MainActivity

新增returnMode=2的部分

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    int returnMode;
    long note_Id;
    returnMode = data.getExtras().getInt("mode", -1);
    note_Id = data.getExtras().getLong("id", 0);


    if (returnMode == 1) {  //update current note

        String content = data.getExtras().getString("content");
        String time = data.getExtras().getString("time");
        int tag = data.getExtras().getInt("tag", 1);

        Note newNote = new Note(content, time, tag);
        newNote.setId(note_Id);
        CRUD op = new CRUD(context);
        op.open();
        op.updateNote(newNote);
        op.close();
    } else if (returnMode == 0) {  // create new note
        String content = data.getExtras().getString("content");
        String time = data.getExtras().getString("time");
        int tag = data.getExtras().getInt("tag", 1);

        Note newNote = new Note(content, time, tag);
        CRUD op = new CRUD(context);
        op.open();
        op.addNote(newNote);
        op.close();
    } else if (returnMode == 2) { // delete
        Note curNote = new Note();          //创建一个“替身”
        curNote.setId(note_Id);
        CRUD op = new CRUD(context);
        op.open();
        op.removeNote(curNote);
        op.close();
    }
    else{

    }
    refreshListView();
    super.onActivityResult(requestCode, resultCode, data);

}

效果

删除全部的按钮功能实现

MainActivity

@Override
public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()){
        case R.id.menu_clear:       //按钮的id
            new AlertDialog.Builder(MainActivity.this)
                    .setMessage("删除全部吗?")
                    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dbHelper = new NoteDatabase(context);
                            SQLiteDatabase db = dbHelper.getWritableDatabase();
                            db.delete("notes", null, null);//参数:删除的表名、限定条件、null
                            db.execSQL("update sqlite_sequence set seq=0 where name='notes'");//执行sql语句,功能:让id值归零,而不是从上一个已经删除的笔记id开始
                            refreshListView();
                        }
                    }).setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    }).create().show();
            break;

    }
    return super.onOptionsItemSelected(item);
}

和上面删除单条笔记内容类似

但onClick内不同,进行了一些数据库操作

public void onClick(DialogInterface dialog, int which) {
    dbHelper = new NoteDatabase(context);
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    db.delete("notes", null, null);//参数:删除的表名、限定条件、null
    db.execSQL("update sqlite_sequence set seq=0 where name='notes'");//执行sql语句,功能:让id值归零,而不是从上一个已经删除的笔记id开始
    refreshListView();
}

功能到此完成

标签:int,DialogInterface,开发,new,Android,data,id,记事本,op
From: https://www.cnblogs.com/zsc02/p/17304082.html

相关文章

  • Android开发_记事本(3)
    适配器NoteAdapter相当于数据和ListView之间的中介 packagecom.example.note; ​ importandroid.content.Context; importandroid.content.SharedPreferences; importandroid.preference.PreferenceManager; importandroid.text.TextUtils; importandroid.view.Vie......
  • Android开发_记事本(4)
    BaseActivity用作大多数页面的父类 packagecom.example.note; ​ //用来当作大多是activity的superclass ​ ​ importstaticandroid.provider.ContactsContract.Intents.Insert.ACTION; ​ importandroid.app.StatusBarManager; importandroid.content.Broadcas......
  • Android开发_记事本(5)
    菜单栏在res目录下新建文件夹menu,并在该目录下新建main_menu.xml  若要在栏里面加图片则需要引入drawable中的东西新建矢量图菜单栏按钮    再新建主页面删除所有按钮和编辑界面的删除当前笔记的按钮  main_menu <?xmlversion="1.0"encoding="utf......
  • Qt for Android QtQuick应用程序 USB连接手机调试运行错误:adb: failed to *.apk: No s
    1.场景Windows11、Qt6.5.0QtQuick应用程序USB连接手机调试运行。2.错误信息adb:failedto*.apk:NosuchfileordirectoryInstallingtodevicefailed!进程"C:\Users\Administrator\Qt\6.5.0\mingw_64\bin\androiddeployqt.exe"退出,退出代码16。安装应用失败,发生未知错......
  • Android开发_记事本(2)数据库
    APP中的数据库知识点ListViewhttps://blog.csdn.net/indeedes/article/details/119530068开发过程需求可以写并保存多个输入的笔记内容按照一定顺序显示出来如果屏幕不够可以下拉输入的内容可以增删改查APP核心:ListViewListView简介在Android开发中,ListView是一个比......
  • Android开发_记事本(1)
    一些知识TextviewTextView中有下述几个属性:id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id!layout_width:组件的宽度,一般写:wrap_content或者match_parent......
  • odoo 后台开发(问题)
    1.Views视图button按钮属性type:主要使用action和objectobject:指定name="模型函数"action:指定name="%(record的id)d"context:传入上下文参数,如设置context="{'active_id':id}"则可以在模型文件使用环境上下文获取传入的值active_id=self.env.cont......
  • 2023很火的手机记事本APP
    在经济高速发展的今天,对于职场人士来说,时间是非常宝贵的,所以我们在工作中要时刻保持高效,能够准确的处理各种事项和工作任务。那么当工作中有很多信息需要记录、管理的时候,当有各种各样工作任务需要完成的时候,职场人士应该如何快速记录下来这些内容呢?  在2023年越来越多......
  • 可视化开发工具打破信息孤岛,提质又增效!
    相信在很长的一段时间内,信息孤岛、部门之间缺乏协作、数据难以整理等问题,都是很多企业在办公过程中遇到的常见问题。随着信息技术的发展,办公高效自动化已经成为无纸化办公的发展趋势了,应用可视化开发工具可以摒除这些缺陷,助力企业办公提质又增效。1、关于可视化开发工具什么是可......
  • vite 开发按需引入的组件库 rollup
    转载:https://blog.csdn.net/qq_27314517/article/details/128675552package.json{"name":"...","private":false,"version":"0.1.9","main":"./lib/index.umd.js","module&......