- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 Android软键盘(七)键盘显示的状态下,onKeyDown方法无法监听到back事件
Android键盘显示的状态下,onKeyDown方法无法监听到back事件,android弹出键盘的系统下,监听不到返回值的解决方案。
2016-12-29 21:59:36 2881
原创 Android软键盘(六)如何监听到软件盘显示与隐藏的事件
有时候我们需要监听软件盘隐藏事件。但是官方并没有提供相关的监听回调,这时我们就需要通过计算布局来判断软键盘的关闭事件了。思路与上一篇文章Android软键盘(五)如何判断软键盘是否显示相似。看效果图:有图有证据,不说了,上代码: @Override protected void onResume() { super.onResume();
2016-12-28 22:01:21 15851 11
原创 Android软键盘(五)如何判断软键盘是否显示
前几次分析了软键盘自动弹出的现象,以及布局上移上移等问题,这次记录一下,如何判断软键盘是否在显示。先来看一下网上比较流行的答案:一:if(getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE){ Toast.makeText(Main3
2016-12-27 22:30:28 37914 11
原创 JNI基础(一)Android Studio 配置NDK
Android Stduio配置NDK步骤:一:下载NDK工具包,网上很多,自行在下。二:解压工具包,获得ndk-bundle文件夹,一般会将此文件夹放入SDK的根目录下,方便寻找(放哪不影响使用,但路径不能有空格和中文)。三:配置NDK环境变量,在Path环境变量添加ndk-bundle路径。四:新建项目在local.properites文件中加入ndk-bundle的路
2016-12-23 10:53:59 502
原创 Android软键盘(四)软件盘弹出布局上移的问题(2)
第一种情况:界面没有导致软键盘会自动弹出的ListView或者ScrollView,这时候去点击EditText或者通过代码手动调出键盘,这种情景下导致的布局上移。解决方案:在相应Activity清单文件中加上这个属性:android:windowSoftInputMode="adjustResize|stateHidden"这种情况下,必须使用adjustResize,使用adjustPan不起作用。 为什么加上stateHidden ? 我已经在文章(二)中说过,如果不加上的话,虽然布局不会上
2016-12-22 23:21:52 7306 1
原创 Android软键盘(三)自动弹出键盘的现象
Android中有一个现象,就是进入一个包含EditText的页面便会自动弹出键盘,特别讨厌。但是其实大家有没有发现,并不是只要包含了EditText的页面就会自动弹出键盘的。往日在做开发的时候,如果遇到这样的问题就会直接用网上的解决方法去解决,也考虑不了那么多了,但是我相信大家一定也会发现,同样是包含了EditText的页面,但有时会自动弹出键盘,有时却不会,今天我认真测试了一下各种情况,总结一
2016-12-22 23:04:59 5535 5
原创 (十七)结构体指针
结构体指针,语法:#include struct Student{ int age; char sex;}; void main(){ //定义结构体 struct Student stu = {22,'W'}; //定义结构体指针变量 struct Student* stuP = &stu; //通过指针变量访问数据 printf("age = %d\n",(
2016-12-22 17:08:41 409
原创 (十六)结构体
C语言的结构体,不知道咋解释......就是相当于JAVA的类这样一个存在吧。对一些共同属性的封装。语法:#include struct student{ int age; char sex;};void main(){ //声明一个结构体变量 struct student stu = {23,'M'}; printf("stu.age=%d\n",stu.age
2016-12-22 16:38:36 265
原创 (十五)枚举
定义枚举与使用与java类似,不同的是C语言的枚举类型只能是在整型的,并且是递增连续的的。语法:#include enum WeekDay{ Monday,Tuesday ,Wednesday,Thursday,Friday,Saturday,Sunday}; void main(){ enum WeekDay _sunDay = Sunday; printf("%d",_
2016-12-22 14:59:30 225
原创 (十四)联合体
联合体的语法和特点:#include union body{ int x; long y; double dd;} ;void main(){ printf("union长度:%d",sizeof(union body)); } 运行结果: union长度:8可以看到,定义联合体与方法体差不多,不过没有返回值和参数列表。而且使用联合体的时候,也需要和u
2016-12-22 14:47:03 370
原创 (十三)函数指针
函数指针,顾名思义,用来指向函数的指针变量。语法:#include int add(int x , int y){ return x + y; } void cacul(int x,int y){ int caculResult = x - y; printf("caculResult=%d\n",caculResult); return ;}void main(
2016-12-22 14:30:27 250
原创 (十二)C语言动态内存分配
上一次记录了一下所谓的静态内存分配,我们可以看出静态内存分配有很多问题,大部分情况下我们不希望自己所做的工作白费,也就是内存被回收,除了确定了没用,所以我们该如何做呢? C语言提供了动态内存分配,就是自己手动申请内存,但是也需要手动去释放内存。语法:使用malloc(int)关键字类申请一块内存,参数为要申请内存的大小,单位为byte#include #includevoid s
2016-12-22 12:25:15 722
原创 (十一)C语言静态内存分配
C语言静态内存分配时什么意思?所谓静态内存分配,就是值我们并没有鲜明的指明内存分配,普通的变量的声明啦什么的,都需要内存,但是都是由系统自动分配的,所以叫静态内存分配。(暂时不考虑在哪一块内存区域分配)例如一段程序:#include void swipe(int** p){ int temp = 999; *p = &temp; }void main(){
2016-12-22 11:56:13 2543 6
原创 (十)指针的再次说明
指针在我的理解意义上,有2层含义。第一层:定义一个指针变量第二层:进行一次指针运算。定义一个指针变量:#include void main(){ int *iP; char *cP; float *fP; printf("int iP长度:%d\n",sizeof(iP)); printf("char cP长度:%d\n",sizeof(cP)); prin
2016-12-22 11:13:07 403
原创 (九)C语言数组的取值,取地址。
有最常见的根据索引取值,与java相同。以及最常见的通过&符号取地址的值。也有其他取地址的值得方式。值得注意的是,我们上边通过取出地址,直接通过 * 进行指针运算,便可以得到对应的值。这里可以看到,我们并没有声明声明指针变量,便可以使用*,这也验证了我所说的 * 的出现,除了在定义指针变量的时候,其他情况下是作为一个动词出现的,它的出现就代表着是一次指针运算。
2016-12-22 10:59:25 8028 1
原创 Android软件盘(一)手动显示与隐藏
软件盘是个头疼的问题,一会乱弹出,一会不弹出,弹出之后还各种影响布局。所以我们今天来从头到尾来研究一下软件盘的使用。往往都是点击一个EditText自动弹出软件,再次点击则消失,那么我们如何主动来操作软件盘?效果图:代码如下:public class MainActivity extends AppCompatActivity implements View.OnC
2016-12-21 22:10:50 662
原创 (七)多级指针
JNI开发-C语言基础C语言多级指针的理解,要理解多级指针一定得先理解,指针并不只是一个名词的意思,它有一层指针运算的概念包含在里边。
2016-12-21 17:33:45 434
原创 (六)指针的应用---址传递(实则为地址的值传递)
C语言中的指针在应用中如何使用呢?下面是一个java中经典的例子用C语言的实现:#include swipe(int x,int y){ int temp = x; x = y; y = temp;} void main(){ int x = 3; int y = 4; printf("交换前: x=%d,y=%d\n",x,y); swipe(x,y); pr
2016-12-21 16:21:42 366
原创 (五)指针的初步认识
C语言中有一个很重要也是很精髓的一个概念,就是指针。所谓指针,其实就是一个专门用于操控内存地址的变量。 很多只学过java的程序员,并且也停留在java的初级阶段的程序员对内存的分配以及地址的分配概念很模糊,有的甚至不知道。其实所有的程序运行的前提都是内存的分配,而每一个内存的分配必然就会为这块分配的区域标志一个地址,以便以后寻找这块内存。java程序中,内存的分配与释放都是jvm来操控的,程序员
2016-12-21 13:06:07 338
原创 (四)C语言输入函数
C语言的输入函数:语法:scanf("占位符",变量的内存地址);相当于Java的Scanner 其实就是从控制台也就是Dos窗口接收输入的参数的,占位符与输出函数一样。#include void main(){ int i; float f; char ss[5]; printf("请输入一个整数:"); scanf("%d",&i); print
2016-12-21 11:30:55 380
原创 (三)输出函数
C语言的输出函数:#include /** printf()输出函数 %c char占位符 %d 整型占位符 %hd 短整型占位符 %ld 长整形占位符 %f float占位符 %lf double占位符 %u 无符号占位符 %x 16进制 %o 八进制 %s 字符串 */void main(){ char c = 'a'; int d =
2016-12-21 10:49:20 383
原创 RecyclerView+SwipeRefreshLayou封装下拉刷新,上拉加载功能
随着Android系统的进步,我们不该老有老旧的ListView来封装下拉刷新,上拉加载了,今天记录一下如何用RecyclerView+SwipeRefreshLayou 封装下拉刷新上拉加载。Android很奇怪。。以前是没有提供瀑布流,刷新控件等。现在是提供了刷新的SwipeRefreshLayou 但又没提供加载更多的功能╮(╯▽╰)╭。总是要劳烦大家自己弄出五花八门的东西来。而且这个S...
2016-12-20 23:35:36 1186
原创 (二)、C语言的基本数据类型
C语言的基本类型:主要为六种基本类型:char,short,int,long,double,float另外还有两种(与基本类型配合使用):unsigned,signed : unsigned表示无符号,signed表示有符号,默认为有符号。无符号需要鲜明用unsigned标志。数据类型的长度:void main(){ printf("char的长度:%d\n",si
2016-12-20 18:14:06 346
原创 (一)、初识C语言
最基本的C语言代码:#include void main(){ printf("hello world!");}语法结构:#include 导入C语言程序必要的类库,像输入、输出函数等这些变成程序的最基本函数。类似于java的import java.lang.*;的功能。void main(){ printf("this is a C program!");}v
2016-12-20 16:58:31 288
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人