摘要:
Android 关于长按back键退出应用程序的实现最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序。在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理时是双击back键来退出应用程序。参考了一下双击back键退出应用程序的代码,网上主流的一种方法是下面这种方法,实现起来比较简单://代码来自:http://www.devdiv.com/home.php?mod=space&uid=67600&do=blog&id=7024 @Override public boolean onKeyDown(int k... 阅读全文
摘要:
如何向Android模拟器中导入含有中文名称的文件在进行Android开发的时候,如果需要向Android模拟器中导入文件进行测试,通过DDMS下手动导入或者在命令行下通过adb push命令是无法导入含有中文文件名的文件的。后来发现借用其他工具可以向模拟器中导入中文名称的文件,这个工具就是UltraISO。因为UltraISO工具本身可以用来打开镜像,而Android模拟器SD卡上的数据实质上也都是保存在一个镜像文件sdcard.img中,所以如果通过UltraISO向sdcard.img中导入文件的话,是不是就可以成功了?所以自己马上尝试了一下, 自己去下了一个UltraISO,安装上之. 阅读全文
摘要:
重装win7后如何恢复ubuntu引导在重装系统之后,开机启动界面的ubuntu引导不见了,直接进入新安装的window系统中。下面是如何恢复ubuntu引导的方法: 1)准备一张ubuntu系统安装盘; 2)将ubuntu系统安装盘放入光驱,重新启动计算机,进入BIOS,将开机启动设置为光驱(CD/ROM)启动方式; 3)然后保存设置退出,等待片刻就进入到ubuntu的安装界面,此时有两个选择 1.在该光盘上试用ubuntu系统 2.将ubuntu系统安装到计算机上 选择"在该光盘上试用ubuntu系统",进入到ubuntu系统之后,打开终端(快捷键组合是Ctrl+Alt 阅读全文
摘要:
解决Android中的ERROR: the user data image is used by another emulator. aborting的方法 今天调试代码的时候,突然出现这个错误,折腾了很久没有解决。最后在google上找到了大家给出的两种解决方案,下面给出这两种方法的链接博客:http://www.cnblogs.com/andrewhan/archive/2011/05/02/superandrewhan.html。 下面这段话是摘自上面给出的链接中的博客:前几天我在做android程序的时候,由于一些错误,导致我emulator出错,再运行的时候就会报:emulator. 阅读全文
Android中的"Unable to start activity ComponentInfo"或者"Unable to instantiate activity ComponentInfo"的错误
摘要:
Android中的"Unable to start activity ComponentInfo"的错误 最近在做一款音乐播放器的时候,然后在调试的过程中发现一直报这个错误"Unable to start activity ComponentInfo",从字面的意思看是无法启动某个activity组件,但是看了manifest文件,所有的activity组件都已经注册过了,为什么会报这种错误?后来发现原来是注册路径出了问题,最开始的代码是这样的:<?xml version="1.0" encoding="utf-8&q 阅读全文
摘要:
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针和数组的一些区别,然而在某些情况下,指针和数组是等同的,下面讨论一下什么时候指针和数组是相同的。C语言标准对此作了说明:规则1:表达式中的数组名被编译器当做一个指向该数组第一个元素的指针; 注:下面几种情况例外 1)数组名作为sizeof的操作数 2)使用&取数组的地址规则2:下标总是与指针的偏移量相同;规则3:在函数参数的声明中,数组名被编译器当做指向该数组第一个元素的指针。 规则1和规则2结合在一起理解,就是对数组下标的引用总是可以写成“一个指向数组的起始地址的指针加上偏移量”。如a[i]总是被编译器解析为*(a+i)的形式。规 阅读全文
摘要:
浅谈C/C++中的指针和数组(一)指针是C/C++的精华,而指针和数组又是一对欢喜冤家,很多时候我们并不能很好的区分指针和数组,对于刚毕业的计算机系的本科生很少有人能够熟练掌握指针以及数组的用法和区别。造成这种原因可能跟现在大学教学以及现在市面上流行的很多C或者C++教程有关,这些教程虽然通俗易懂,但是在很多关键性的地方却避而不谈或者根本阐述不清楚,甚至很多时候阐述的是错误的观点。一般最初学习C/C++的时候接触到的都是这类教程,学习效果可想而知。对于初学者选择好的教程真的很关键,因为先入为主,一旦你接受了错误的观点或者思想即使后来知道了也一时很难纠正过来(我是深有体会),在此我推荐三本很适. 阅读全文
摘要:
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时,书中谈到C语言的声明问题,《C专家编程》这本书只有两百多页,却花了一章的内容去阐述这个问题,足以看出这个问题的重要性,要想透彻理解C语言的声明问题仅仅看书是远远不够的,需要平时多实践并大量阅读别人写的代码。下面借鉴《C专家编程》书中的两个例子来说说这个问题,以下很多内容是摘自《C专家编程》的第55页-79页。 在C语言中,声明的形式和使用的形式相似,这种用法可能是C语言的独创,K & R也承认"C语言声明的语法有时候会带来严重的问题"。C语言的声明存在的最大问题是你无法以一种人们所习惯的自然方式从左到右阅 阅读全文
摘要:
浅谈C/C++中的typedef和#define 在C/C++中,我们平时写程序可能经常会用到typedef关键字和#define宏定义命令,在某些情况下使用它们会达到相同的效果,但是它们是有实质性的区别,一个是C/C++的关键字,一个是C/C++的宏定义命令,typedef用来为一个已有的数据类型起一个别名,而#define是用来定义一个宏定义常量。下面谈谈两者在实际使用中应当注意的地方。1.typedef关键字 typedef是用来声明类型别名的,在实际编写代码过程使用typedef往往是为了增加代码的可读性。它可以为一串很长的类型名起一个别名,那么使用这个别名可以达到与原类型名相同的效. 阅读全文
摘要:
位运算和sizeof运算符 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的。位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果。位运算主要有6种:与(&),或(|),取反(~),异或(^),左移(>)。1.位运算中的类型转换位运算都必须进... 阅读全文
摘要:
两个与位运算有关的小问题在读《编程之美》一书时,书中提到两个小问题:1.如何求算N!的二进制表示最低位1的位置。2.如何用最简便最快的方法判断一个正整数是否是2的方幂。对于第一个问题:对于任何一个整数n,当表示成二进制时,若最低位为1,则该数肯定是奇数,否则为偶数。若是奇数,则n肯定不含质因子2.例如9的二进制形式是1001,最后一位位1,则肯定不含因子2,而12的二进制形式是1100,则肯定含因子2.但是将1100右移2位就变成0011,即将12除以2^2,此时0011为奇数。从这里可以发现一个规律,要求一个数的二进制表示形式最低位1的位置,相当于求算n有多少个因子2。因为假如一个整数表示. 阅读全文
摘要:
位图 位图是一种很特殊的数据结构,可以利用位图来排序,但是这种排序方法对输入的数据是有比较严格的要求(数据不能重复,大致知道数据的范围)。举个例子,假如有一个集合{3,5,7,8,2,1},我们可以用一个8位的二进制向量set[1-8]来表示该集合,如果数据存在,则将set相对应的二进制位置1,否则 阅读全文
摘要:
求二进制中1的个数 在《编程之美》一书中有一节提到如何求一个字节的无符号整型变量二进制表示中中1的个数,主要提到了四种方法。下面简单介绍一下:1.求余法 在将十进制数转换为二进制数时,采用除2取余法。将每次除2得到的余数保存起来逆序输出便是该十进制整数的二进制表示。因此可以采用这种方法去统计1的个数。int count(unsigned char n){ int sum=0; while(n) { if(n%2==1) sum++; n/=2; } return sum;}2.位运算 我们知道计算机在处理位运算时... 阅读全文
摘要:
Repository Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1129Accepted Submission(s): 382Problem DescriptionWhen you go shopping, you can search in repository for avalible merchandises by the computers and i... 阅读全文
摘要:
Hat’s Words Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2414Accepted Submission(s): 880Problem DescriptionA hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictiona... 阅读全文
摘要:
Phone List Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3544Accepted Submission(s): 1191Problem DescriptionGiven a list of phone numbers, determine if it is consistent in the sense that no number is the pr... 阅读全文
摘要:
从一个程序的Bug解析C语言的类型转换 先看下面一段程序,这段程序摘自《C 专家编程》:#include<stdio.h>int array[]={23,34,12,17,204,99,16};#define TOTAL_ELEMENTS (sizeof(array)/sizeof(array[0]))int main(void){ int d=-1,x; /*........*/ if(d<=TOTALTOTAL_ELEMENTS-2) x=array[d+1]; /*........*/ return 0;} 如果是有这样一段程序的话,你永远无... 阅读全文
摘要:
浅谈C语言中的位段 位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间。含有位段的结构体(联合体)称为位段结构。采用位段结构既能够节省空间,又方便于操作。 位段的定义格式为: type [var]:digits 其中type只能为int,unsigned int,signed int三种类型(int型能不能表示负数视编译器而定,比如VC中int就默认是signed int,能够表示负数)。位段名称var是可选参数,即可以省略。digits表示该位段所占的二进制位数。 那么定义一个位段结构可以像下面这段代码去定义:struct node{ unsigne... 阅读全文
摘要:
C语言文件操作解析(五)之EOF解析 在C语言中,有个符号大家都应该很熟悉,那就是EOF(End of File),即文件结束符。但是很多时候对这个理解并不是很清楚,导致在写代码的时候经常出错,特别是在判断文件是否到达文件末尾时,常常出错。1.EOF是什么? 在VC中查看EOF的定义可知: #define EOF (-1) EOF只是代表一个整形常量-1。因此很多人认为在文件的末尾存在这个结束标志EOF,这种观点是错误的。事实上在文件的末尾是不存在这个标志的。那么有人会问那下面的程序如何解释? char ch; while((ch=fgetc(fp))!=EOF) { ... 阅读全文
摘要:
Flying to the Mars Time Limit: 5000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4318Accepted Submission(s): 1393Problem DescriptionIn the year 8888, the Earth is ruled by the PPF Empire . As the population growing , PPF needs to... 阅读全文