<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[My_First_ID的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/My_First_ID</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; My_First_ID]]></copyright><item><title><![CDATA[自定义控件——自定义属性]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/53301683</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/53301683</guid><author>My_First_ID</author><pubDate>Wed, 23 Nov 2016 10:31:11 +0800</pubDate><description><![CDATA[当我们自定义组件时，除了可以使用android系统为我们提供好的属性之外，还可以自定义属性。自定义属性主要步骤如下：
     第一步：
      在res/values目录下新建attrs.xml文件，然后在attrs.xml文件中声明属性。
      例如：
  
  
  
  
  
  
     

      这里我们定义了3个自定义属性maxRow,maxColumn和]]></description><category></category></item><item><title><![CDATA[自定义滑动开关SwitchButton]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/52575230</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/52575230</guid><author>My_First_ID</author><pubDate>Sun, 18 Sep 2016 16:08:12 +0800</pubDate><description><![CDATA[在很多app中都会有滑动开关的应用场景，之前在自己的项目中也用到了，自定义了一个滑动开关，就叫SwitchButton吧。实现原理很简单，闲话不多说，直接上代码：
 public class SwitchButton extends View implements
		android.view.View.OnClickListener {
	private Bitmap mSwitchBotto]]></description><category></category></item><item><title><![CDATA[View的滑动冲突解决]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/52572177</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/52572177</guid><author>My_First_ID</author><pubDate>Sun, 18 Sep 2016 11:39:40 +0800</pubDate><description><![CDATA[一.滑动冲突的场景

当两个都可滑动的控件处于内外两层的关系时，这个时候我们往往会遇到滑动冲突的问题，比如最常见的ScrollView和ListView的冲突，就是最典型的一种滑动冲突场景
虽然能够滑动的控件五花八门，但万变不离其宗，滑动控件大致就分为两类，一类为上下滑动的，另一类即左右滑动的，既然这样那么滑动冲突的场景也是非常有限的。大致可以分为3类：
1.外部滑动和内部滑动方向不一致]]></description><category></category></item><item><title><![CDATA[Listview里包含组件(checkbox)点击事件和Item的点击事件冲突]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51766267</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51766267</guid><author>My_First_ID</author><pubDate>Mon, 27 Jun 2016 09:40:35 +0800</pubDate><description><![CDATA[今天在写了个小需求，ListView里包含checkbox，点击ListView的item时要求将item的内容显示在一个TextView中(TextView不包含在item中)，并同时改变checkbox的checked状态。
代码很简单，只是一开始并没有意识到ListView的item点击事件与checkbox的点击事件存在冲突，checkbox的点击事件优先级高于item的点击事件，所以在]]></description><category></category></item><item><title><![CDATA[Retrofit2.0中如何创建JSON所对应的javaBean]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51504735</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51504735</guid><author>My_First_ID</author><pubDate>Thu, 26 May 2016 11:12:03 +0800</pubDate><description><![CDATA[本文重点讲解在Retrofit2.0中如何讲比较复杂的JSON对象转化为javaBean，而不过多介绍Retrofit2.0的用法，因为讲解Retrofit2.0的文章已经有很多人写了，也写的很详细，我作为一个初用Retrofit2.0的新手，便不班门弄斧了，写这篇文章的主要目的是因为自己在使用的过程中遇到了一些小问题在多方查找下得已解决，因为网上资料比较散，所以在此做个小小的总结。
如今的An]]></description><category></category></item><item><title><![CDATA[Volley框架使用报错：NetworkDispatcher.run: Unhandled exception java.lang.NullPointerException]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51395257</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51395257</guid><author>My_First_ID</author><pubDate>Fri, 13 May 2016 15:00:08 +0800</pubDate><description><![CDATA[volley是google在2013年的I/O大会上推出的一个网络通信框架，在请求网络数据的时候，使用volley大大提高了我们的开发效率，但是众所周知使用volley发起POST请求时，我们需要通过在xxxRequest的匿名类中重写getParams()方法，
比如有这么一个stringRequest：
StringRequest stringRequest = new StringReq]]></description><category></category></item><item><title><![CDATA[RecyclerView使用详解]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51362869</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51362869</guid><author>My_First_ID</author><pubDate>Tue, 10 May 2016 14:20:17 +0800</pubDate><description><![CDATA[RecyclerView是Android
 5.x版本中新添加的一个全新控件，他比ListView，GridView更加的灵活，我们能够使用RecyclerView就完成ListView，GridView所做的工作，同时使用RecyclerView也能非常方便的实现瀑布流的效果。
一.竖屏ListView，横屏GridView效果
MainActivity代码：
public class]]></description><category></category></item><item><title><![CDATA[使用RecyclerView报错：ClassNotFoundException android.support.v4.util.ArrayMap]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51353022</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51353022</guid><author>My_First_ID</author><pubDate>Mon, 09 May 2016 14:47:58 +0800</pubDate><description><![CDATA[在使用RecyclerView的时候（eclipse），编译没有问题但是在运行时报错ClassNotFoundException android.support.v4.util.ArrayMap导致应用直接崩了。原因是导入的support.v4不正确。


解决办法：工程目录->properties->java build path->libraries->Android Private L]]></description><category></category></item><item><title><![CDATA[使用EventBus代替startActivityForResult向上传递数据]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51324248</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51324248</guid><author>My_First_ID</author><pubDate>Thu, 05 May 2016 16:44:12 +0800</pubDate><description><![CDATA[这几天接触了下EventBus，EventBus是一款针对Android优化的发布/订阅事件总线。对于Fragment和Fragment通信，Service和Fragment通信，EventBus是一个不错的选择。
以前我们如果想要在Activity之间向上传递数据，都会采用startActivityForResult()方法来实现。其实用EventBus也能实现这个功能。
首先新建一个事件类]]></description><category></category></item><item><title><![CDATA[Fragment生命周期新认识]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51279414</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51279414</guid><author>My_First_ID</author><pubDate>Fri, 29 Apr 2016 09:39:08 +0800</pubDate><description><![CDATA[文章内容也许与标题并不是很相符，我主要想写的只是在项目中遇到的一些小问题以及问题的是如何解决，至于写这个标题只是因为这些错误是由于对Fragment的生命周期理解不够深刻而导致的。
为了便于分析，贴出有问题和解决问题后的代码(只是一些关键代码)：
有问题：
     代码段1：
dots.get(0).setBackgroundResource(
				R.drawable.dot_fo]]></description><category></category></item><item><title><![CDATA[ViewPager无限自动轮播+动画]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51261568</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51261568</guid><author>My_First_ID</author><pubDate>Wed, 27 Apr 2016 15:30:50 +0800</pubDate><description><![CDATA[ViewPager几乎在每一个app中都会有使用，可以做导航页，也可以做广告、图片的播放。最近在做的app也用到了ViewPager,具体要实现的功能是能够无限轮播，并且在自动轮播时，图片在切换时能够有动画效果，当手指触摸时停止自动轮播，手指抬起时继续自动轮播。
闲话不多说，直接上代码
自定义ViewPager：
 public class MyViewPager extends ViewP]]></description><category></category></item><item><title><![CDATA[Android获取屏幕宽高新方法]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51177551</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51177551</guid><author>My_First_ID</author><pubDate>Mon, 18 Apr 2016 10:11:27 +0800</pubDate><description><![CDATA[这几天做的项目中有用到手机屏幕的分辨率，所以就用一下代码来获取手机的宽高：
Display disPlay = getWindowManager().getDefaultDisplay();
		int width = disPlay.getWidth();
		int height = disPlay.getHeight();
	

但是发现这个方法已经过时了，对于强迫症患者来说，一直有黄色]]></description><category></category></item><item><title><![CDATA[AlertDialog二次点击报You must call removeView() on the child's parent first错的解决方法]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51162797</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51162797</guid><author>My_First_ID</author><pubDate>Fri, 15 Apr 2016 16:38:04 +0800</pubDate><description><![CDATA[今天在工作中用到了自定义的Dialog，理想总是很美好的，因为在自定义Dialog和创建Dialog的过程比想象的要顺利，所呈现的效果和想象中的一致，但是正当自己沾沾自喜的时候，在第一次点击弹出Dialog之后，第二次点击程序却闪退了。一开始的喜悦瞬间消失了，痛定思痛，查看LogCat发现报错java.lang.IllegalStateException The specified child a]]></description><category></category></item><item><title><![CDATA[Cascade_Master的一个小bug修复]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51134251</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51134251</guid><author>My_First_ID</author><pubDate>Tue, 12 Apr 2016 15:58:08 +0800</pubDate><description><![CDATA[之前在项目中有地方要用到省市县的选择，就使用了开源的Cascade_Master，很好用的一个控件，在这里谢谢作者的分享。
但是在使用的时候发现有一点小小的问题，就是当滚动省和市后，而不去滚动区，那么视觉上虽然区的滚轮也相应改变，但是最终获取到的区却是之前一次滚动后的值，而并不是于省市对应的区。查看源代码后发现，作者在控件的onChanged事件中是这样写的：
public void onCh]]></description><category></category></item><item><title><![CDATA[OnTouch事件ACTION_DOWN,ACTION_MOVE,ACTION_UP的事件拦截]]></title><link>https://blog.youkuaiyun.com/My_First_ID/article/details/51130497</link><guid>https://blog.youkuaiyun.com/My_First_ID/article/details/51130497</guid><author>My_First_ID</author><pubDate>Tue, 12 Apr 2016 09:37:33 +0800</pubDate><description><![CDATA[今天看了郭神的 

Android事件分发机制完全解析，带你从源码的角度彻底理解(上) 对其中的一些细节还不是很理解，就自己测试了一下。
简单的给一个按钮注册了触摸事件：
	button.setOnTouchListener(new OnTouchListener() {

			@Override
			public boolean onTouch(View view, MotionEv]]></description><category></category></item></channel></rss>