注:地理位置将在007note2.0中由小灰灰实现。
我在三人小组中参与了主页面添加笔记功能的构建,单独完成了主页面的全部删除功能以及edit页面的单独删除功能,在之后添加了加密功能,完成弹出菜单以及修改密码操作。
重点讲讲我单独做出那几个功能。
首先是设置在主页的全部删除功能:
在上述代码中,我利用菜单的响应事件,根据菜单中的item的id来判定响应事件,利用switch的优势,判断触发的事件是不是全局删除。如果是,代码继续执行。
定义一个文本类型变量et保存需要输入的暗号密码,输入暗号后,点击OK进入判断,如果暗号符合,则进行数据库数据删除操作,暗号不符合则执行fail方法,提示密码错误,然后再关闭对话框。
再者,是edit页面的单独删除功能:
在EditActivity中,我仍然是用菜单的响应事件,根据菜单中的item的id来判定响应事件,利用switch判断触发的事件是不是单个记录的删除。
确定要删除这条记录时,传mode=2和这条记录的id到MainAcitivty中的接收方法onActivityResult中去。
那么MainActivity就对returnmode==2的情况进行操作,对已传回id的那条记录进行数据删除操作。
加密功能的思路:首先我们确定一下加密需要应用到哪个地方,第一,在首页点开加密记录的时候需要一个密码验证;第二,在首页全部删除功能应用的时候应该进行密码验证;第三,在修改密码的时候会验证一下旧密码。
然后考虑这个功能具体怎么实现,一开始,我想创建两个独立的数据库,创建两个主页面存放两个独立的列表,在主列表里面放不需要加密的记录,在保密界面列表存放需要加密的记录,然后在两个页面的menu上面放一个转换页面的按钮,点击按钮就会跳转页面,在从主页面往保密页面跳转的时候利用一个dialog进行密码输入和判断。但是最后这个想法在我始终捋不清两个数据库和活动的发射之后破产,历时两天挣扎。
思路更改:我就在edit编辑页面的menu上面设置一个保密状态转换的按钮,就是那个伞型的按钮,点一下就会将正在编辑的记录转为保密状态,在想要点开这条记录的时候就需要在弹出的dialog中输入正确的密码。
那么我就想到在每条记录中多加入一个属性,用来判断这条记录的保密状态,于是,我定义了一个flag变量,如下面代码所示:
其实这里flag应该设置为布尔值的,但是搞成数值也不大错,,,没有默认值。
来看看具体实现的代码:
这里我用了onItemClick点击事件来判断点击的是第几条记录,然后获取这条记录的flag值,如果flag值为零,那么就用intent.putExtra先EditActivity传值,重要的是mode值为3,表示这次是已经创建过了的记录的再次打开,且flag仍为0,进行跳转到edit页面。
如果这条记录已经为改变成保密状态了,那么flag==1,验证输入密码的正确性,如果正确,就进行传值与跳转,但是flag传过去的值就为1。如果密码错误,就弹出一个dialog提醒一下密码错误。
这一段就是在edit页面完成的一个保密状态的转换,没有太过优化,主要就是改变一下这条记录的flag值,是1就变0,是0就变1。没什么值得说的。
加密差不多主要就是这些了,下一个。
首先在MainActivity里面声明了很多组件工具,参考了别人的代码结构。
然后是一大堆我看不懂的渲染代码,
这里要注意,一共是有两层layout弹出了一个customView,一个coverView,第一层就是我们需要的弹出的菜单,第二层是一个衬托第一层的蒙版。
再来一个经典的showPopUpView将主弹窗的宽度设置为屏幕的70%,营造弹窗的效果,让主弹窗在蒙版的上面防止蒙版遮挡,将id为setting_img和setting_text的组件设置点击事件,调用我设置的dialog方法。
这个dialog方法就是用来更改密码的,可以输入old_code和new_code,如果旧密码验证正确,那么就改变code,调用success方法来提醒修改成功,验证失败会调用fail方法提醒密码错误。
好了都说完了,总结一下,这个考核项目我们小组除去地理位置获取(那个授权出了问题,还在解决)一共用时5天完成要求的功能,其余时间都用来学JavaScript,,,简简单单,也都是从零开始学安卓,靠着一点Java基础,一点点吃透别人的代码,转化成自己的代码。
完结撒花。
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="
假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195
我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正
我一直在尝试使用nanoc用于生成静态网站。我需要组织一个复杂的排列页面,我想让我的内容保持干燥。包含或合并的概念在nanoc系统中如何运作?我已阅读文档,但似乎找不到我想要的内容。例如:我如何获取两个部分内容项并将它们合并到一个新的内容项中。在staticmatic您可以在您的页面中执行以下操作。=partial('partials/shared/navigation')类似的约定在nanoc中如何运作? 最佳答案 这里是nanoc的作者。在nanoc中,部分是布局。因此,您可以拥有layouts/partials/shared/
我安装了ruby、yeoman,当我运行我的项目时,出现了这个错误:Warning:Running"compass:dist"(compass)taskWarning:YouneedtohaveRubyandCompassinstalledthistasktowork.Moreinfo:https://github.com/gruUse--forcetocontinue.Use--forcetocontinue.我有进入可变session目标的路径,但它不起作用。谁能帮帮我? 最佳答案 我必须运行这个:geminstallcom