分享好友 最新动态首页 最新动态分类 切换频道
结合ai利用Android Studio开发一款记事本小程序思路分享
2024-12-25 12:58

       在正式读下面的内容之前呢,我要事先说明一下:以下内容是我结合ai用Android Studio做记事本的思路过程,并不会直接提供代码给到大家,主要是我也不知道怎么给到大家嘿。我写这个主要是想记录一下我做这个的时候的思路,大家可以借鉴一下。做一个项目无论大小对业务逻辑要求还是比较高的,在你编程思路比较清晰以及对整个代码结构比较清晰的时候,用ai编程其实会方便很多。用ai呢就是有什么需求就说什么,哪里不懂问哪里,戒骄戒躁,一步一步做,肯定能做好的。也没必要全部照我这样来操作,我主要是提供一个思路供大家参考。下面开始介绍

结合ai利用Android Studio开发一款记事本小程序思路分享

打开通义千问,手机号登录后即可使用

:搭建好整体的模型框架,先按步骤一步步走好。

1.询问ai:我是androidstudio开发小白,请告诉我开发一款记事本程序需要进行哪些步骤。

后面ai会告诉你基本步骤

我总结一下就是准备工作(配置环境)、创建新项目、设计UI、编写逻辑代码、数据存储、测试应用、添加额外功能、发布应用

2.在了解到基本步骤之后,配置环境和创建新项目基本无问题,而后问ai

询问ai:我是一名android小白,现在我需要开发一款《记事本》程序,请你帮我设计一下UI界面:记事本主界面列表(列表+一个添加按钮)、添加记录界面、修改记录界面。要求美观

分析

     (1)ai会为你概述每个界面的设计要点,并提供一些实现建议

     (2)无实战的建议,所以我们需要接着问:请你以代码的形式教我如何在Android Studio写出相应的代码。

     (3)我发现ai是用Kotlin语言写的,而我对java语言比较熟悉所以我接着问:请你用java来写。接着ai就开始用java语言教我们编写一个简单的记事本程序:从创建项目、修改biuld.gradle文件、创建数据库和数据模型、DatabaseHelper.java、创建适配器、ui界面(主界面、添加记录界面、修改记录界面)及对应的java调用文件、数据库操作、布局资源文件。这些你直接用ai帮你做你看他怎么做的就好。

3.复制粘贴之后,有报错解决报错,先把整体的框架搭建好。

问题解析:在我的执行过程中,我是遇到了很多的报错信息

(1)android:src="@drawable/ic_add" />

然后我问ai:android:src="@drawable/ic_add" />报错

分析:原因是因为没有找到该图标资源:ai会教我们如何去添加图标资源、修改xml布局文件、清理和重建项目、添加依赖性、同步项目、检查资源文件等一系列操作。

(2)item_note和R.id.text_view_title两个代码显示爆红
我问ai:为什么item_note和R.id.text_view_title会报错

原因是因为没有被定义:然后ai会教我们创建item_note.xml文件,其中就包含了text_view_title和text_view_date这两个TextView。

4.因为我刚刚开始不太熟悉android studio怎么把做的项目在模拟机上启动,所以我就问ai:按照上面的步骤全部做了之后怎么把软件下载到模拟器adv的桌面上,跟着ai的步骤成功启动adv(模拟机)并正常显示之后我开始对界面进行修改。

例如:想让文本和加号图标变得大一些且自适应窗口

问ai:主界面的xml文件复制给ai+请帮我将加号和文本、按钮设计得大一些自适应窗口

跟着他的步骤做即可。

  1. 在跟随ai完成一系列操作之后有部分代码有报红的情况如下代码:<com.google.android.material.floatingactionbutton.FloatingActionButton。
  2. 因为这是紧接着ai操作之后新加的代码,所以我们之间告诉他这个地方报错:<com.google.android.material.floatingactionbutton.FloatingActionButton报错。

分析:他会告诉我们出错的原因(缺少必要的依赖库或库,教我们如何去解决。

  1. 后续执行后发现的错误爆红信息:fab_add_note <com.google.android.material.floatingactionbutton.FloatingActionButton>: No speakable text present

我是直接把这段错误信息发给ai的:然后他告诉我解决方式,添加一个描述性信息即可。

:实现具体的功能实现

1.问ai:为之前的项目添加接口功能实现,点击右下角添加图标进入添加界面,输入信息之后保存后点击返回即可返回到主界面。

分析:按ai给的步骤完成即可

2.我想在编辑信息的左上方添加一个返回的图像(后续我改成了按钮:然后我问ai:有关编辑的xml文件直接复制过来+请在上述的xml文件的界面中在左上角显示一个返回的图像

分析:按ai给的步骤完成

3.我不知道是否需要连接数据库,所以我问ai:把DatabaseHelper类文件复制粘贴过来+需要连接数据库吗

告诉了我一些增删改查的可能介绍,可以把其中的东西用上。

4.因为EditNoteActivity中缺少一下接口实现,所以我问ai:把EditNoteActivity中的代码复制粘贴过来+请你补全接口处的代码。

让ai帮我实现接口

(1)粘贴过来之后我发现有关table和column的代码都报错了。

因为有前后联系的关系我就直接问ai了:有关table和column的代码都报错了

(2)解决之后又出现了这样的报错信息'TABLE_NAME' has private access in 'com.example.noteapp.DatabaseHelper'

于是我问ai,我是直接发给他的,因为ai能根据报错的信息然后反馈'TABLE_NAME' has private access in 'com.example.noteapp.DatabaseHelper'。

原因是TABLE_NAME等常量在DatabaseHelper类中被定义为私有(private)……

(3)在一段if语句中其中有两行代码报红,于是我把这些代码一起复制粘贴过来问ai:复制粘贴的内容+中间两行报错。修正原代码即可

5.因为在MainActivity中前面只给出了框架,以及某些方法,但方法体只给了注释告诉我们需要实现的功能。

于是我问ai:把MainActivity的全部代码复制粘贴过来+补充完注释部分的剩余代码

6.项目写完之后呢,app出现了闪退的情况,我直接问ai:项目写完之后,打开app会闪退

然后他告诉我,去打开logcat去查找报错的日志,从这开始我也就学会慢慢自己去根据日志去解决错误问题了。。

接着把爆红的日志信息全部复制粘贴给ai让他找出出错的问题和解决方案就行了。

7.接着我把MainActivity上的代码复制过来+请帮我创建适配器和点击监听器,然后ai帮我把之前的代码全部整合了一般。

8.因为我在虚拟机上点击右下角的添加按钮之后没反应于是问ai:把MainActivity上的代码复制过来+使得执行程序之后点击右下角的添加按钮进入到添加界面添加相应数据。

Ai帮我修改了点击处理逻辑,还帮我完善了添加界面和添加记录的业务处理逻辑。

9.执行完上述全部之后,我进行实操,结果点击添加按钮直接虚拟机直接无响应退出了,于是我问ai:点击添加按钮直接虚拟机直接无响应退出了,然后他一顿分析我感觉来不起,就去查日志信息,把日志信息发给了他。说:日志信息+帮我定位问题

分析:根据ai的说明,原因是因为没有在AndroidManifest.xml声明AddNoteActivity 这个活动类

10.解决之后,我们接着做添加记录的处理业务逻辑

问ai:把AddNoteActivit复制粘贴+实现在添加界面输入数据之后按下save之后跳转到主界面用列表的形式展现出来。

跟着ai的步骤做完

做完后出现问题:虽然能起到返回到主界面的作用但是保存的数据无法在主界面以列表的形式呈现出来

因为前后关系,我就直接问ai了:虽然能起到返回到主界面的作用但是保存的数据无法在主界面以列表的形式呈现出来,按ai的提示操作完即可

11.在主方法中出现了这样的错误

int id = cursor.getInt(cursor.getColumnIndex(DatabaseHelper.COLUMN_ID)); String title = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_TITLE)); String content = cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_CONTENT)); long date = cursor.getLong(cursor.getColumnIndex(DatabaseHelper.COLUMN_DATE)); 这四句报错

原因是因为cursor的取值可能取到-1,在ID括号后面+1即可

12.NoteAdapter类中出现的问题

报错信息

Cannot resolve symbol 'SimpleDateFormat'

Cannot resolve symbol 'Date'

Cannot resolve symbol 'title_text_view'

Cannot resolve symbol 'content_text_view'

Cannot resolve symbol 'date_text_view'

问ai的方式:NoteAdapter的源码+报错信息

解决办法:导包(到NoteAdapter中+查找、确保布局文件中包含正确的试图id

13.执行app验证,发现有无响应闪退的问题,于是查看日志找问题原因,把日志法给ai操作完就没问题了。

14.问ai:把MainActivity的源码复制粘贴+编写一个长按删除记录的事件和接口实现长按左键删除记录的操作,跟随ai的提示操作完毕

15.问ai:把MainActivity的源码复制粘贴+编写方法和接口实现:当点击左上方的返回按钮图片时,会直接返回到主界面

因为涉及到一个设计toolbar的问题,我不会,所以我问ai:请你从教我设置toobar开始教我。

跟着ai操作即可。

操作过程中在activity_main.xml 中遇到了 "Cannot resolve class RecyclerView" 错误,然后我把他的部分代码复制过来+报错的信息问ai

分析:因为你的项目缺少了必要的依赖库。RecyclerView 是 Android 支持库的一部分,你需要确保在 build.gradle 文件中添加了相应的依赖。…………

跟着操作即可

还遇到了:Namespace 'app' is not bound这样的报错。

问ai是因为:需要在 <RelativeLayout> 标签内添加 xmlns:app="http://schemas.android.com/apk/res-auto"。

16.fab_add_note <com.google.android.material.floatingactionbutton.FloatingActionButton>: No speakable text present

该问题又会重复出现,方法和前面(一)中的第8点类似,不会的话还可以接着问ai就好

17.Cannot resolve symbol '@color/colorPrimary' Cannot resolve symbol '@color/colorPrimaryDark'

颜色资源正确引用的问题,源代码+报错信息问ai,ai会教你如何配置

18.报错日志信息:As of Android 12, `android:exported` must be set; use `true` to make the activity available to other apps, and `false` otherwise. For launcher activities, this should be set to `true`.

类似于这种报错的日志信息可以直接为ai,ai可以告诉你详细的解析。

19.Cannot resolve symbol 'menu_main'

Cannot resolve symbol 'AlertDialog'

直接问ai把这两个报错的信息发给他即可,ai会教你配置xml文件、更新方法,导入类……

20.因为之前左上角的返回我设置的是一个图片,然后呢点击老是没反应出问题,我就直接让ai帮我做了一个。

问ai:AddNoteActivity的源代码+在添加界面的左上角添加一个返回的按钮在虚拟机中左键点击可以实现返回的操作。

按要求走下去

21.为编辑页面添加功能

问ai:EditNoteActivity的源代码+在这个代码的基础之上,实现当在主界面点击左键后进入编辑界面,并且在编辑完成并保存之后返回到主界面,编辑的内容需要发生改变

22.在MainActivity中为EditNoteActivity设置业务处理逻辑

问ai:MainActivity源码+请在该MainActivity的基础之上实现 在主界面(MainActivity)中设置点击事件来启动 EditNoteActivity。 传递笔记 ID 到 EditNoteActivity。 在 EditNoteActivity 中加载笔记数据并允许用户编辑。 在编辑完成后保存更改并返回到 MainActivity。 在 MainActivity 中重新加载笔记列表以显示更新的内容。

23.做到这个就可以测试啦,测试之后我是有一个日志报错了的,原因之前也遇到过,把报错的日志复制到ai中让他帮忙解决,声明相应的xml文件就好啦。

24.写到这里一个记事本文件的开发也就差不多结束啦。加油

最新文章
最新控制类神兽如何培养?一文拿捏超级白泽玩法!梦幻西游三维版
最近新出的【超级白泽】作为法攻神兽,拥有专属天赋技能【言灵·禁】,控制效果和强度双双爆表!那么到底要培养输出型白泽还是辅助型白泽?打书该如何搭配?皮皮剑特意邀请兜卦少侠和GuanYin音音少侠为大家带来【超级白泽】的培养攻略,一
百度系高管,涌向谷歌微软亚马逊
北京时间12月12日,据雷峰网报道,亚马逊云(AWS)中国区进行了新一轮的人事调整。此次调整主要包括:1、AWS负责人储瑞松原百度下属王博全面负责China Tech业务,直接向储汇报。此前该部分业务由L8(大概可以对标M3B或者M3C)高管代闻管理
进一步部署 Google Authenticator:Apache 模块
Google Authenticator 是个好东西。它不仅可以增强 Google 账户登录的安全性,更因为它开源的特性,被部署到别的地方使用。比如 Linux PAM、WordPress 等,使用户可以借助 Google 的这套 OTP 方案,增强自己的
大量404页面该如何处理,以优化谷歌SEO?
在网站运营的过程中,我们时常会遇到大量404页面的问题,这些页面不仅影响用户体验,还可能对谷歌SEO产生负面影响。作为一名在SEO领域摸爬滚打多年的从业者,我深知处理这些404页面的重要性,也积累了一些实战经验。今天,我将分享一些关于
手机CPU天梯图2024年8月版更新,你的手机排名高吗?
① 由于厂商、测试环境及CPU、GPU、AI、功耗等侧重点存在差异,排名可能会存在一定的差异。天梯图仅供大致参考,不作严格排名比对。② 若您在天梯图中发现有型号遗漏或明显的排名错误,欢迎留言指正。我们一起来完善。③ 天梯图精简版中标
pdf页码怎么自动生成?pdf页码生成方式!
pdf页码怎么自动生成?pdf文档里没有页码,想要给pdf文档加上页码怎么办?当收到一个pdf文档页数太长了,或者出于正式文档要求,必须给pdf文档加上页码,遇到这些情况,我们该怎么办呢?有的朋友,会在文档每一页下方编辑数字来给pdf打上页码
保定SEO优化,高效提升网站流量,助力企业快速腾飞
保定SEO优化服务,专注于提升网站在搜索引擎中的排名,有效增加网站流量,为企业发展注入强劲动力,助力企业快速腾飞。在当今这个的时代,互联网已经成为了人们获取、购物、娱乐的重要渠道,而在这个庞大的网络世界中,企业要想脱颖而出,
探索游戏世界,单机游戏资源大揭秘
亲爱的游戏爱好者们,你是否曾为寻找那些令人心动的单机游戏资源而感到迷茫?我们就来一起探索一下如何轻松找到那些令人欲罢不能的单机游戏资源。一、明确你的游戏喜好在开始寻找之前,要明确自己的游戏喜好,是喜欢动作冒险类、策略类、还
【W708百度网盘下载】网尔W708百度网盘12.18.3免费下载
百度网盘是一款省心、好用的超级云存储产品,已为超过7亿用户提供云服务,空间超大,支持多类型文件的备份、分享、查看和处理,自建多个数据存储中心,更有两项国际安全认证ISO27001&ISO27018为用户数据安全提供护航,如果您想备份文件数
Zenopress:Vue.js与WordPress的完美集成插件
在当今Web开发领域,前端框架Vue.js与内容管理系统WordPress的集成越来越受到开发者的青睐,因为它不仅结合了Vue.js构建用户界面的强大功能,还利用了WordPress后端的灵活性和易用性。这一章节旨在为读者提供一个基础的
相关文章
推荐文章
发表评论
0评