Android记事本【4】

本文介绍了一个简单的Android应用,用于管理个人笔记。应用包括创建、编辑和删除笔记等功能,并详细介绍了如何实现这些功能的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

承接上文。

一、点击确定键保存数据

初始化列表后,点击进入该记事的编辑页面。但是现在列表还是空的,需要我们添加个记事。所以修改NotesEditActivity类,在onCreate函数中添加如下代码:

 

confirmBtn.setOnClickListener(newView.OnClickListener() {

           

            public void onClick(View view) {

                Bundle bundle = new Bundle();

                bundle.putString(NotesDbAdapter.KEY_TITLE,titleEdit.getText().toString());

                bundle.putString(NotesDbAdapter.KEY_BODY,bodyEdit.getText().toString());

               

                if (rowId != null) {

                    bundle.putLong(NotesDbAdapter.KEY_ROWID,rowId);

                }

               

                Intent iRes = new Intent();

                iRes.putExtras(bundle);

                setResult(RESULT_OK, iRes);

                finish();

            }

        });

 

这样,当我们点击“Confirm”键时就会保存填写好的数据。

测试运行,录入数据保存后,回到主界面,还是没有数据,为什么?

 

是因为点击确认键后,我们把数据保存在一个bundle中,但返回的主界面的时候没有去接收它,进行保存。所以需要在NotespadActivity添加如下代码:

 

@Override

    protected voidonActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode,resultCode, data);

       

        Bundle extras =data.getExtras();

        switch (requestCode) {

        case ACTIVITY_EDIT:

            Long rowId =extras.getLong(NotesDbAdapter.KEY_ROWID);

            if (rowId != null) {

                String title =extras.getString(NotesDbAdapter.KEY_TITLE);

                String body =extras.getString(NotesDbAdapter.KEY_BODY);

                db.updateNote(rowId,title, body);

            }

            break;

        case ACTIVITY_CREATE:

            String title =extras.getString(NotesDbAdapter.KEY_TITLE);

            String body =extras.getString(NotesDbAdapter.KEY_BODY);

            db.createNote(title,body);

            break;

        }

    }

 

这样就可以把数据存到数据库,并且在列表上显示出来。

二、在主界面点击列表项进入编辑页面

这时点击列表还没有反应,在NotepadActivity中添加如下函数:

 

@Override

    protected void onListItemClick(ListView l, View v, int position, long id) {

        super.onListItemClick(l,v, position, id);

        Intent i = newIntent(this, NoteEditActivity.class);

        cur.moveToPosition(position);

        i.putExtra(NotesDbAdapter.KEY_TITLE, cur.getString(cur.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));

        i.putExtra(NotesDbAdapter.KEY_BODY, cur.getString(cur.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));

        i.putExtra(NotesDbAdapter.KEY_ROWID, id);

        startActivityForResult(i, ACTIVITY_EDIT);

    }

这样点击某项进入编辑页面,是空的。

因为还需要在NotesEditActivity的onCreate函数中添加如下代码,把数据库中的数据填回:

 

  Bundle extras = getIntent().getExtras();

      if (extras!= null) {

          String title =extras.getString(NotesDbAdapter.KEY_TITLE);

          String body =extras.getString(NotesDbAdapter.KEY_BODY);

          rowId =extras.getLong(NotesDbAdapter.KEY_ROWID);

 

          if(title != null)

              titleEdit.setText(title);

          if (body!= null)

              bodyEdit.setText(body);

      }

三、删除某项

好,到此基本结事。最后别忘了在NotepadActivity的上下文菜单中定义删除:

创建上下文菜单:

@Override

  public void onCreateContextMenu(ContextMenu menu, View v,

          ContextMenuInfo menuInfo) {

      super.onCreateContextMenu(menu,v, menuInfo);

      menu.add(0, DELETE_ID, 0,R.string.delete_note);

  }

选中项被删除:

  @Override

  public boolean onContextItemSelected(MenuItemitem) {

      switch (item.getItemId()) {

      case DELETE_ID:

          AdapterContextMenuInfo info= (AdapterContextMenuInfo)item.getMenuInfo();

          db.deleteNote(info.id);

          listAllNotes();

          return true;

      }

      return super.onContextItemSelected(item);

  }

 

四、最后的问题:

当在编辑页面点击手机回退键时,会弹出报错提示,请想下为什么?下节回答,并作点总结,附上源码。

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值