Android中的小技巧

1. 如果想添加特殊字符 , 如 @ , 默认报错, 可以在前面加个\  
2 . android:descendantFocusability用法简析 

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。属性的值有三种:
      beforeDescendants:viewgroup会优先其子类控件而获取到焦点
      afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
      blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
3, 如果当前activity的启动模式是singleTask...则它上个界面给它传来的bundle都不能接收到
4. 对于自定义的带输入框的Dialog, 点击输入框时不弹出键盘的解决方法

方法一:  在继承AlertDialog, onCreate()方法中, 设置如下:
requestWindowFeature(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
因为AlertDialog默认是:
requestWindowFeature(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
上面这两个flag可以互相牵制
方法二:  继承Dialog,Dialog默认的样式很丑,,需要做2个操作,该操作都是在onCreate方法中进行的
第一: 去掉黑色头部: 
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉黑色头部
第二: 去掉黑色背景:
getWindow().setBackgroundDrawableResource(android.R.color.transparent);//只有这样才能去掉黑色背景

5.给dialog设置全屏的最简单的方法 ,在构造函数中
super(context,android.R.style.Theme);
setOwnerActivity((Activity)context);
如果该Dialog设置了自定义style,则在其初始化完view后,设置layout宽高
getWindow().setLayout(屏幕宽,屏幕高);
6. 给一个Layout设置selector时。必须设置点击事件才能有效果
7. 字符串的格式化:

    格式为:%[index]$[type] 如:%1$s    %2$d
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值