<2015.6.20>
1.碰到了人生第一个闪退闪退问题:原来是button绑定监听器之后,监听的内容ProgressBar忘记findviewbyid出来了~~
06-20 14:30:01.879: E/AndroidRuntime(11040): FATAL EXCEPTION: main 06-20 14:30:01.879: E/AndroidRuntime(11040): java.lang.NullPointerException 06-20 14:30:01.879: E/AndroidRuntime(11040): at com.you.edittext.MainActivity$2.onClick(MainActivity.java:44) 06-20 14:30:01.879: E/AndroidRuntime(11040): at android.view.View.performClick(View.java:4171) 06-20 14:30:01.879: E/AndroidRuntime(11040): at android.view.View$PerformClick.run(View.java:17097) 06-20 14:30:01.879: E/AndroidRuntime(11040): at android.os.Handler.handleCallback(Handler.java:615) 06-20 14:30:01.879: E/AndroidRuntime(11040): at android.os.Handler.dispatchMessage(Handler.java:92) 06-20 14:30:01.879: E/AndroidRuntime(11040): at android.os.Looper.loop(Looper.java:137) 06-20 14:30:01.879: E/AndroidRuntime(11040): at android.app.ActivityThread.main(ActivityThread.java:4914) 06-20 14:30:01.879: E/AndroidRuntime(11040): at java.lang.reflect.Method.invokeNative(Native Method) 06-20 14:30:01.879: E/AndroidRuntime(11040): at java.lang.reflect.Method.invoke(Method.java:511) 06-20 14:30:01.879: E/AndroidRuntime(11040): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:808) 06-20 14:30:01.879: E/AndroidRuntime(11040): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:575) 06-20 14:30:01.879: E/AndroidRuntime(11040): at dalvik.system.NativeStart.main(Native Method)
<2015.6-22>
1. listview中添加了checkbox后,失去了焦点,使得item无法被点击
我的解决方法: 在checkbox空间中添加:android:focusable=“false”
2. listview滚动之后控件信息(比如checkbox的勾选状态)没有被记录:
原因:item被勾选之后,需要在储存的信息中更新checkbox的状态。
3. getApplication.this,MainActivity.this,getContext()的区别:
参考链接:http://blog.csdn.net/guolindonggld/article/details/24243059
1.getApplication():虽然它返回的是Application对象,但Application类继承自Context,所以它可以用来提供Application Context; 2.getApplicationContext():返回Application Context; 3.getBaseContext():返回Activity Context; 4.MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身。
因为MainActivity继承Activity,而Activity继承Context,所以它也可以用来提供Activity Contex; 5.this:表示当前对象;当它表示MainActivity时,也可以用来提供Activity Context,原因同上。 6.getContext():这个是View类中提供的方法,在继承了View的类中才可以调用,返回的是当前View运行在哪个Activity Context中。前面的3个方法可以在Activity中调用。
<2015.6.23>
1.碰上一个坑爹的问题:
写完程序之后,连接真机,准备运行,提示“You must restart adb and Eclipse.Please ensure that adb is correctly located at 'E:\setups\android\android-2.1_r01-windows\tools\adb.exe' and can be executed. ”
问题:原来是金山助手占用了adb.exe的端口5037,
(1).切换到sdk目录下的platform-tools/,执行adb nodaemon server,默认是5037
(2).找出进程号:netstat -ano | findstr "5037"
(3).打开任务管理器的查看→选择列→勾选PID,5037的进程 sjk_demon.exe无法删除~(万恶的金山~~)
(4).最后只能打开金山毒霸,点击设置,禁用金山手机助手
<2015.6.24>
1.问题描述:linearlayout的android:layout_gravity不起作用~~
①当android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
②当android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
2.问题描述:昨晚照着书敲代码,运行之后编译无错误,运行后闪退~~半天没整明白,刚刚终于终于跑起来了
错误的logcat:binary Xml file line #10 error inflating class listview
原来是xml中我把ListView写成了Listview~!!!!!纳尼!!!还是吃了不会XML的亏,我以为在标签中Eclipse会自动根据标签来生成可以使用的属性,
但是测试发现,<标签/>标签是乱写的也可以用快捷键列出各种属性~~~~~!
在stackflow上找到了问题的原因,如下链接
http://stackoverflow.com/questions/13473352/binary-xml-file-line-3-error-inflating-class-listview
3. setContentView(R.layout.firstactivity)应该是用包的R文件,而不是android的R文件~~
<2015.6.25>
1.问题描述:真机调试小米2s无法列出可以响应隐式Intent的Activity,直接使用系统默认的活动打开
(1)使用模拟机是可以的选择启动活动的程序 (2)真机的话要设置默认启动的程序(估计root应该可以解决这个问题)
<2015.7.1>
1.帮弟弟填报志愿花了整整一周的时间,真是不容易~接下来要加快进度了
2. 在stackflow上面提了第一个问题并解决了~歪果仁实在是认真仔细,我代码上传格式有问题都会帮着公共编辑!
问题是我的JAVA基础还要补补:内部类,多线程那一部分实在是太弱
3. eclipse太坑了,尝试对网络状态广播接收器进行静态注册,谁知道使用在定义receiver能接受的action时,使用快捷键自动补全找不到android.net.conn.CONNECTIVITY_CHANGE的状况:
(1) 一开始以为android.net.conn.CONNECTIVITY_CHANGE这个状态是不能监控的,后面才发现自己输进去是可以工作的
(2) 发现静态注册的网络状态接收器响应要慢好多(2s)
(3)查资料的时候也了解到有一些广播是不可以静态注册的: ACTION_BATTERY_CHANGED ACTION_CONFIGURATION_CHANGED ACTION_TIME_TICK
http://bbs.chinaunix.net/thread-3641596-1-1.html
<2015.7.2>
1.我用小米2S进行文件的写入~发现在File Explorer并没有发现有这个文件,使用虚拟机却可以打开储存在文件
手机需要root权限才可以找到保存的文件~使用openfileoutput是将文件储存在内部空间中的
<2015.7.8>
1.小米2s无法接受短信广播: 我自己写了一个短信接受应用,向联通发了一条短信后,只有系统才能收到这条短信,我把广播接收器的等级调到IntentFilter.SYSTEM_HIGH_PRORITY都还是没有作用~~!而在原生虚拟机里面是可以正常收到广播的,所以应该是小米2s做了一些修改,(1)把系统自带的广播接收器优先级调到最高,拦截掉这个广播~(2)系统发出的广播并不是android.provider.Telephony.SMS_RECEIVED,
考虑到可能自定义一个短信接收器比较少用,所以还是觉得不需要这样纠结,以后用到在研究~
2.想打印一下小米2s外部储存的目录,在setContentView(R.layout.activity.xml)后面写了一句打印:Log.d("MainActivity",
"
getExternalStorageDirectory = "
+ Environment.getExternalStorageDirectory().getAbsolutePath()
),半天都打印不出来,
<2015.7.14>
1. 发现Gson将Json的自动解析的构造类中,网上面的资料都是需要override toString,于是乎进Q群问了一下:
① override toString和hashcode是好习惯 ②特别是equals和hasCode在Set接口中使用是有要求的