自己学习安卓时的一些繁杂的小笔记

空指针错误

用findViewById获取布局文件里的控件时
需要获取布局文件加载给的那个对象的子方法finadViewId
否则会报空指针错误,即获取不到控件

系统返回键处理

  • 点击home键时,系统默认只执行应用程序的当前显示的Activity的onStop()方法后跳出界面;
  • 点击back键时,系统默认执行应用程序当前的Activity的finish()方法后跳出界面;
  • 点击menu键时,系统默认不进行任何处理

    @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if(keyCode == KeyEvent.KEYCODE_BACK){
                Intent intent = new Intent(this,SettingActivity.class);
                startActivity(intent);
            }
            return super.onKeyDown(keyCode, event);
        }
    

系统WindowManager

  • 帧动画

    • 写在drawable目录下的一个xml文件

      <animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
      <item
          android:drawable="@drawable/desktop_rocket_launch_1"
          android:duration="200"/>
      <item
          android:drawable="@drawable/desktop_rocket_launch_2"
          android:duration="200"/>
      </animation-list>
      
    • darawable ———— 每一帧的动画资源

    • duration ———— 每一帧持续的时间

设置Activity为透明的:android:theme=”@android:style/Theme.Translucent.NoTitleBar”

RodionButton 去掉左边默认的小圆点选项卡:
添加代码: android:button = “@null”

fragment使用时的一些配置错误


用到了fragment,结果在需要返回Fragment的方法里面,无法将Fragment1(Fragment的子类)强制转换成Fragment,
很是纳闷,我是参照一个开源代码来做的,源码里面很正常,我这里却报错,
后来才发现,是对包的导入出现了差错,在Fragment1中导入的是android.app.Fragment
而在出错的那个类里面是用android.support.v4.app.Fragment,包不同当然无法转换
后来统一导入为android.support.v4.app.Fragment之后就正常了.


ImageButton 载入图片问题

在ImageButton中载入图片后,很多人会觉得有图片周围的白边会影响到美观,其实解决这个问题有两种方法

一种方法是将ImageButton的背景改为所需要的图片。如:android:background=”@drawable/XXX”

第二种方法就是将ImageButton背景改为透明,这个方法更常用

在XML里;

父布局焦点问题

android:descendantFocusability=”blocksDescendants”。

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

java.lang.NoClassDefFoundError: Class not found

   using the boot class loader; no stack available

1.分析过程

首先看到log 中出现很多信息,从caused by 看到类找不到,但是此异常信息是在运行程序时候,
突然弹出此问题,(注意:以前程序都是正常的),此时看上面Suppressed中提示的activity类,是否存在,
如果存在,可以排除代码异常引起,可能是eclipse 引起的。仔细看下导入lib 加载进去了没有。

2.错误原因

可能在编译中未能加载完全类执行编译导致。

3.解决方法

重启Eclipse ,待程序加载完成,再运行.一般都能解决.

getOwnCacheDirectory()用于获取外部存储路径

如果编程中布局出现冲突,如父控件需要Padding来使其变大,子控件1需要放在父控件中间,子控件2又需要放在父控件的右上角或某个其他的角度,此时由于padding的存在会使得子控件与该角之间有空隙。此时可以考虑,父控件包裹内容,子控件2通过放在帧布局中,通过帧布局的padding来撑大父控件,同时子控件2又可以与父控件某角无缝隙

JavaBean对象

  1. 内部嵌套的类必须是static的,要不然解析会出错;
  2. 类里面的属性名必须跟Json字段里面的Key是一模一样的
  3. 内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值