随笔分类 - android
摘要:即使我们Java层的函数没有参数,原生方法还是自带了两个参数,其中第一个参数就是JNIEnv。如下:native方法:``` public native String stringFromC(); public native String stringFromCpp();```原生方法:```jst...
阅读全文
摘要:不知道大家在实际开发中有没有自定义过UI模板?今天花时间研究了一下android中自定义UI模板,与大家分享一下。 每个设计良好的App都是自定义标题栏,在自定义标题栏的过程中大部分人可能都是自定义一个标题的xml文件,然后在需要的地方直接通过include来引用,这比起在每个布局文件中写标题栏已经
阅读全文
摘要:android中的广播用的太多了,今天稍微总结一下。 按注册方式分为两种:1.静态注册广播: 静态注册广播就是在androidManifest.xml文件中注册广播,假设我们要实现这样一个效果,在一个activity上点击按钮,发送一条广播,这条广播弹出一个toast,显示“静态”二...
阅读全文
摘要:我们都知道,android的调试打了断点之后运行时要使用debug as->android application 但是这样的运行效率非常低,那么我们有没有快速的方法呢? 当然有。 我们打完断点之后,不使用debug as 而是使用run as,运行之后,打开ddms,如图,选中调试...
阅读全文
摘要:在一个Activity用完之后应该将之finish掉,但是,之前在学校里自己摸索着开发时并没有太注意这个问题,因为activity无论是否finish掉对功能的影响貌似都不是那么明显(这是读书时候的观点),因此也就没有仔细考虑过activity合适finish这个问题。最近在公司的项...
阅读全文
摘要:被这个不起眼的属性折磨了一天,终于解决了。 由于项目需要,要合并两个android应用,于是拷代码,拷布局文件,拷values,所有的都搞定之后程序还是频频崩溃,一直没有找到原因,学android时间也比较久了,但是清单文件中的application节点的name属性以前一直没有重视...
阅读全文
摘要:由于项目需要,要修改已经开发好的应用包名,这本身很简单,但是如果你没找到门道,可能会白白浪费许多时间。 修改包名有三个地方要改,这三个地方的修改一定要按顺序来,否则你可能会遇到许多不必要的麻烦。 1.修改清单文件 2.重新在Java文件中导入R文件 1改完之后系统就会报错,这是因为...
阅读全文
摘要:最近有这样一个需求,我需要用户在一个弹出框里输入密码来验证,验证成功当然好说,但是如果验证失败则需要把alertdialog的标题改为“密码错误,请重新输入”,并且这个alertdialog还不能消失,要等待用户继续输入。 那么怎么实现点击确定或者取消按钮之后dialog不消失呢?/...
阅读全文
摘要:android组件之间的通信有多种实现方式,Broadcast就是其中一种。在activity和fragment之间的通信,broadcast用的更多本文以一个activity为例。 效果如图: 布局文件: MainActivity.javapublic class M...
阅读全文
摘要:上一篇说了安装jdk的事,于是趁热打铁,决定把eclipse也安装了。 下载这一系列就不用说了。下载完成之后:然后解压,解压之后文件剪切到/usr/software文件夹中,同时重命名为eclipse,剪贴重命名方法参见 ubuntu文件管理常用命令 。这样eclipse就可以运行了...
阅读全文
摘要:这个方法是通用的,不仅仅适用于EditText,也适用于TextView、AutoCompleteTextView等控件。 Google官方API并没有给出一个直接的方法用来设置右边图片的点击事件,所以这里我们需要通过点击位置来判断点击事件,效果如图: 布局文件: MainAc...
阅读全文
摘要:遇到一个问题记录下来,在开发中使用了AlertDialog,想点击屏幕其他区域的时候让这个dialog消失,一开始不做任何设置,在小米手机可以正常显示,但是在三星中却有问题,后来发现少了一个属性:View dilaogView = initDialogView(); ...
阅读全文
摘要:popupWindow说起来简单,但是使用略麻烦,今天带大家来看看怎么使用,先来看看效果图: 先来看看布局文件吧: 布局文件是一个文本输入框,和一个向下的小三角符号,点击这个小三角,会有提示。有人说这个功能不是直接用android中的下拉列表框就可以了,但是下拉列表框是...
阅读全文
摘要:今天是上班的第二天,听说我最近的任务就是改bug,唉,权当学习了,遇到的一些问题都记录下来。sqlite数据库是android中非常常用的数据库,今天帮别人改bug,遇到一些问题记录下来。 1.修改数据库表的结构要通过数据库升级来实现,数据库会自动执行SQLiteOpenHelper...
阅读全文
摘要:帮别人该bug遇到的一个问题,记录下来。 listView.setSelection(a); 这个方法可以让让你的listview定位到指定行但是如果紧接着执行隐藏输入键盘的代码,则会有bug,这个时候定位无法实现。 imm.hideSoftIn...
阅读全文
摘要:在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图:其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做。先来看看布局文件: 布局文件最上边是一个...
阅读全文
摘要:去年的优酷HD版有过这样一种菜单,如下图:应用打开之后,先是三个弧形的三级菜单,点击实体键menu之后,这三个菜单依次旋转退出,再点击实体键menu之后,一级菜单会旋转进入,点击一级菜单,二级菜单旋转进入,点击二级菜单的menu键,三级菜单旋转进入,再次点击二级菜单的旋转键,三级菜单...
阅读全文
摘要:有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便。我们来看一个简单的例子,在一个页面中有三个textview,每个textview显示内容不同但是样式...
阅读全文
摘要:相对于多点触摸,单点触摸还是很简单的。 新建一个工程,先看看布局文件: 就一个简单的ImageView,一会我们将在Activity中移动这个ImageView:public class MainActivity extends Activity { private Im...
阅读全文
摘要:国际化,听起来高大上,做起来很简单。 我们来实现一个简单的效果,让应用根据系统的语言来做不同的显示,假如android系统默认是英语,应用就以英文的形式显示,如果android系统默认是中文,则应用就显示中文。 新建一个工程,名字叫做I18N,要做国际化,字符串的显示一定要按andr...
阅读全文