Android 有用代码片段总结

在Android开发过程中,不同的项目之间总会复用到一些有用的代码,这里记录下来,方便以后使用。

一、Android判断点击区域是否在指定的View之内

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev)  
    {   
       Rect rect = new Rect();
       View.getGlobalVisibleRect(rect);

       if (rect.contains((int)ev.getRawX(), (int)ev.getRawY()))
       {
            return false;
        }
      
        return super.onInterceptTouchEvent(ev);
    }

 二、ListView点击没有反应的问题(一般是自己定义的item中存在ImageButton, Button, CheckBox等自控件)

原因一般是自己定义的item中含有Button或者Checkable的子控件,获取了焦点,点击item时,只有这些子控件响应,item本身没有响应。

解决的办法是在item.xml的layout中加入属性

android:descendantFocusability="blocksDescendants" 

三、旋转屏幕时禁止Activity重启

android3.2以前,我们习惯在AndroidManifest.xml 中添加activity属性android:configChanges="orientation|keyboardHidden" , 但是在android 3.2以后的版本需要增加“Screen Size”,即android:configChanges="orientation|keyboardHidden|screenSize",才可以禁止Activity重启。

SDK描述如下,在“Handling the Configuration Change Yourself”段落中。

http://developer.android.com/guide/topics/resources/runtime-changes.html

四、获取AndroidManifest.xml中配置的应用版本号

   public String getVersion()
   {
      try
      {
         PackageManager manager = this.getPackageManager();
         PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
         String version = getString(R.string.version) + info.versionName;
         return version;
      }
      catch (Exception e)
      {
         e.printStackTrace();
         return "1.0";
      }
   }
原文地址:https://www.cnblogs.com/shaddock2013/p/3017085.html