android开发中代码片段集合 (二)

        和上一篇一样,一些常用的功能代码。原本想写在一篇里面,突然发现有时文章太长,看久了也许就走神了,所以还是简洁点,每篇记录10个左右case,慢慢积累。

1.精确区配联系人 11位 or 7位

      android源码的号码匹配默认是从后向前匹配7位,这个可以应付大多数情况了,但是这东西放在天朝有时就不灵了,11位号码 13500000000和 00000000 android分不出来了, 在哪里改下呢? Framework代码 phoneNumberUtils.java有个常量,把这个7改成11,匹配时所调用的方法看下的代码吧,关键的代码在这里,其它的要看具体应用了。
    static final int MIN_MATCH = 7;
    public static String  toCallerIDMinMatch(String phoneNumber) {
        String np = extractNetworkPortionAlt(phoneNumber);
        return internalGetStrippedReversed(np, MIN_MATCH);
   

2. 列表长按菜单对应的选项ID

        这个需求应该比较常见了,就是list列表长按菜单项所对应的listitem的id是多少,如何得到。 网上应该也有很多,不过多解释在此记录
      
   public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfoIn) {
        AdapterContextMenuInfo mi = (AdapterContextMenuInfo) menuInfoIn;
       
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)aItem.getMenuInfo();
        这个mi对象中会有 id position  view三个参数
   }
    还有可能是这样的
    public boolean onContextItemSelected(MenuItem aItem) {        
            ContextMenuInfo menuInfo = (ContextMenuInfo) aItem.getMenuInfo();        
             AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)aItem.getMenuInfo();    
             id = (int)info.id;
          return true;    
   }    
 

3   设置字符串光标位置

     也许有时候我们就不想让光标在第一个位置,设置方法就是下面的代码了,要使用Selection.java这个类
      
     Editable etext = mSubjectTextEditor.getText();
     Selection.setSelection(etext, etext.length());

4    监听音量上下键调节音量

      这个网上貌似很多回答,大多数是转载,监听onkeyDown消息没错,可是好多都没有给出获取当前音量的方法,基本上没法直接用。下面这个测试是有效的。

   AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
      switch (keyCode) {
      case KeyEvent.KEYCODE_VOLUME_UP:
        audio.adjustStreamVolume(
            AudioManager.STREAM_MUSIC,
            AudioManager.ADJUST_RAISE, // 增加音量
            AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
        return true;
       case KeyEvent.KEYCODE_VOLUME_DOWN:
        audio.adjustStreamVolume(
            AudioManager.STREAM_MUSIC,
            AudioManager.ADJUST_LOWER,//减少音量
            AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
        return true;
        default:
        break;
      }
      return super.onKeyDown(keyCode, event);
   }

5 editText中设置回车输入不换行

        这是源码 Mms 编辑界面所使用的一个效果,在信息正文的编辑框里输入回车是不会实现换行的,实现代码如下,也许有时候你也有这样的需求。

 Activtyy 实现TextView.OnEditorActionListener这个接口
 public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (event != null) {
            // if shift key is down, then we want to insert the '\n' char in the TextView;  注意看下注释
            // otherwise, the default action is to send the message.
            if (!event.isShiftPressed()) {
                
                return true;
            }
            return false;
        }


        后面的慢慢补充。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值