<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mouttz的专栏]]></title><description><![CDATA[android学习]]></description><link>https://blog.youkuaiyun.com/mouttz</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mouttz]]></copyright><item><title><![CDATA[ListView的setOnItemClickListener事件不响应]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/17245269</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/17245269</guid><author>mouttz</author><pubDate>Tue, 10 Dec 2013 15:44:23 +0800</pubDate><description><![CDATA[原因：
当ListView的Item中包含CheckBox或Button等时，不会响应setOnItemClickListener事件
解决方法：
在Item中的子View（CheckBox或Button）的focusable设置为false即可
<CheckBox
        android:id="@+id/checkBox1"
        android:layout_wid]]></description><category></category></item><item><title><![CDATA[哈弗曼树的构造]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/16986163</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/16986163</guid><author>mouttz</author><pubDate>Wed, 27 Nov 2013 15:19:27 +0800</pubDate><description><![CDATA[http://patapatapon.blog.163.com/blog/static/2040442392012261186656/]]></description><category></category></item><item><title><![CDATA[代码学习—继承理解]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/16950667</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/16950667</guid><author>mouttz</author><pubDate>Mon, 25 Nov 2013 20:55:32 +0800</pubDate><description><![CDATA[代码学习—继承理解
public class FatherClass {
	protected String value;
	public FatherClass(String value){
		this.value = value;
	}
	public boolean equals(FatherClass father){
		System.out.println("FatherClass]]></description><category></category></item><item><title><![CDATA[ListView中OnTouch与OnItemClick事件共存]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/16848865</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/16848865</guid><author>mouttz</author><pubDate>Wed, 20 Nov 2013 19:41:32 +0800</pubDate><description><![CDATA[如何让ListView同时响应OnTouch与OnItemClick事件


onClick是不需要返回值的，而onTouch的返回值是boolean.
关于onTouch的返回值，官方解释如下：
*
This returns a boolean to indicate whether your listener consumes this event. The important t]]></description><category></category></item><item><title><![CDATA[LinearLayout中组件右对齐]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/16354773</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/16354773</guid><author>mouttz</author><pubDate>Sat, 16 Nov 2013 10:26:25 +0800</pubDate><description><![CDATA[在LinearLayout中，如果将其定位方向设为横向排列：android:orientation="horizontal"，那么这个布局中的控件将自左向右排列。

但有时会有这样的情况：行的左边有两个控制的同时，行的右边也有一个控制。

如图：

这怎么处理呢？

我们可以将右边的控件放在另一个LinearLayout中,同时将其对齐方式设为右对齐：android:gravity]]></description><category></category></item><item><title><![CDATA[使用adb不识别sqlite3]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/14430559</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/14430559</guid><author>mouttz</author><pubDate>Wed, 06 Nov 2013 22:39:37 +0800</pubDate><description><![CDATA[解决方法：
运行模拟器，在/system/xbin 文件夹下找到sqlite3 复制出来
1.通过工具直接将sqlite3 push到手机
2.通过以下指令
#mount -o remount,rw /dev/system/mtdblock6 /system
#cp /sdcard/sqlite3 /system/xbin/sqlite3
#chmod 755 /system/xbin]]></description><category></category></item><item><title><![CDATA[Message Handler Looper]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/14120523</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/14120523</guid><author>mouttz</author><pubDate>Mon, 04 Nov 2013 17:22:38 +0800</pubDate><description><![CDATA[一、Message
Message创建方式有两种，一种是new Message()，开销较大，另外一种是Message.obtain()，
使用回收但是没有被释放的message对象，减少开销，有点类似Adapter中的ConvertView与ViewHolder,一般使用Message msg = Handler.obtain()，事实上也是调用Message.Obtain().

Ha]]></description><category></category></item><item><title><![CDATA[查询通讯录-1（数据库结构）]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/13293829</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/13293829</guid><author>mouttz</author><pubDate>Tue, 29 Oct 2013 15:04:44 +0800</pubDate><description><![CDATA[查询通讯录联系人的信息
a.系统联系人的数据库保存位置：data/data/com.android.providers.contacts/databases  contacts2.db
b.主要包含三张表，contacts,raw_contacts,data可以通过sqlitespy打开查看。
contacts表：contacts表中一条记录对应联系人列表中的一个联系人（通过j可能包含多个联]]></description><category></category></item><item><title><![CDATA[Unable to chmod sdcard: Read-only file system]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12911435</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12911435</guid><author>mouttz</author><pubDate>Mon, 21 Oct 2013 15:21:44 +0800</pubDate><description><![CDATA[模拟器中，sdcard可能是只读的。

 

在shell命令行中输入

adb root

切换到root用户

然后执行如下命令：（注意，/表示的是根目录，因此这个不仅仅是对sdcard，其他文件也可以读写。rw表示读写权限，mount重挂载文件系统）

adb shell mount -o remount rw /

 

执行完后，

可以用mount命]]></description><category></category></item><item><title><![CDATA[Hash原理与HashMap]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12677093</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12677093</guid><author>mouttz</author><pubDate>Sun, 13 Oct 2013 16:17:23 +0800</pubDate><description><![CDATA[1.背景
对于数据集合我们可以使用数组，链表等结构来存储。
数组在内存中是一段连续的存储空间，所以当进行删除或者插入操作时，需要对影响到的数据重新前移或者后移，性能较低；
而链表内存空间不连续，但是在执行查询操作时，需要逐一遍历结点，性能较低；
在大多数情况下，对于数据集合的操作包含了数据存储(put)与数据访问(get)，所以需要一种新的结构来提高数据集合存储和访问的效率。
2.Has]]></description><category></category></item><item><title><![CDATA[Java深拷贝与浅拷贝原理]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12588385</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12588385</guid><author>mouttz</author><pubDate>Fri, 11 Oct 2013 00:50:11 +0800</pubDate><description><![CDATA[1.什么是深拷贝与浅拷贝
何为深拷贝？完全复制一个新的对象，需要申请新的内存空间；
浅拷贝，就是仅仅将引用赋值。
int a = 3;
int b = a;
a=4;
这是深拷贝,改变a的值不会影响到b；
Object  x = new Object();
Object y = x;
浅拷贝，改变x的内容，相当于与改变b的内容，反之亦然。
2.决定深浅拷贝的原因
Java中实]]></description><category></category></item><item><title><![CDATA[事件监听器]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12356123</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12356123</guid><author>mouttz</author><pubDate>Sun, 06 Oct 2013 22:33:16 +0800</pubDate><description><![CDATA[1.背景
类是对象的抽象，是一个特征集，我们会定义一些成员变量和构造函数来体现不同实例之间的差异。比如孩子中会有名字等
当然在类中也会有一些成员方法，如孩子们可以玩游戏等。
这些都是我们可以根据需求与实际预知并抽象出来的，但是如果有这样一种行为，对象自己无法控制什么时候会发生，如孩子们被告知回家吃饭，然后每个孩子心里所想，做什么我们都无法预知。而这些无法用简单的成员变量去描述。
一千个孩子]]></description><category></category></item><item><title><![CDATA[回调机制]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12294283</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12294283</guid><author>mouttz</author><pubDate>Fri, 04 Oct 2013 23:54:15 +0800</pubDate><description><![CDATA[1.回调的概念


通俗讲就是Class A去访问Class B的方法b(),目的是为了让Class B能够调用Class A中的方法a(). 而a()对于Class A就是回调函数，这个过程就是回调。

为什么ClassA自己不调用a()，而是绕一圈让ClassB调用？？？

2.回调产生原因


为什么会有回调，我认为是当A有一些事情要亲自做，但是做的时间是由B来决定。
]]></description><category></category></item><item><title><![CDATA[Android的单线程模型]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12254519</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12254519</guid><author>mouttz</author><pubDate>Thu, 03 Oct 2013 16:08:25 +0800</pubDate><description><![CDATA[1.背景
Android是单线程模型，在应用程序启动时，Android会启动一个主线程（UI线程），主线程负责与UI相关的事件，如按键，触屏，绘图等。
不过仍然可以在UI线程中处理非UI相关的事件，但是这是一件危险的事情，有可能会造成ANR。
原因，单线程模型下更新UI是线程安全的，省去了很多逻辑上的处理。（？？？）
2.实例
如下图，当点击Button1，执行

for(i = 0]]></description><category></category></item><item><title><![CDATA[Java 父类引用指向子类对象]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12220839</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12220839</guid><author>mouttz</author><pubDate>Tue, 01 Oct 2013 20:10:55 +0800</pubDate><description><![CDATA[1.背景

面向对象的三大特点，继承，封装，多态。何为多态（Polymorphism）？接口的多种不同的实现方式就是多态（百度百科）。
 PC上的一个USB接口，可以插入U盘，可以插鼠标，也可以连接手机，在PC上会有针对这些设备不同的驱动程序以实现连接，也就是谁使用谁去实现。
在程序语言中，通过子类继承父类，然后重写覆盖的方法，在创建对象时，将父类的引用指向子类的对象，就可以利用父类引用调]]></description><category></category></item><item><title><![CDATA[面向对象设计—开闭原则（OCP）]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12217235</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12217235</guid><author>mouttz</author><pubDate>Tue, 01 Oct 2013 11:54:52 +0800</pubDate><description><![CDATA[1.概念
面向对象设计的一个原则，开闭原则（OCP）
就是说，软件中的模块，类，以及功能，应该能够在不修改现有代码的基础上增加新功能
“开”指的是组件功能的扩展是开放的
“闭”指的是现有的代码是关闭的
实现开闭原则最关键的是“抽象”，就是将系统所有可能的行为抽象成一个抽象底层，然后这个抽象底层提供所有具体实现的方法特征，所以这要求对系统的设计有一定的预见性
具有一定的理想主义色彩，是面]]></description><category></category></item><item><title><![CDATA[Java Synchronized用法1]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12145393</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12145393</guid><author>mouttz</author><pubDate>Sat, 28 Sep 2013 23:09:45 +0800</pubDate><description><![CDATA[1.背景
Java中需要资源共享，如对象中的一些数据，而数据是私有的，往往通过创建方法去访问这些数据，当多个线程去访问这些数据（调用方法）时，往往会产生冲突，Synchronized可以有效的防止冲突（Thinking in java14.2.2）。
2.原理 ()
使用Synchronized去修饰方法时，调用此方法的对象将会被“上锁”，此时锁住的是对象，不是代码块或者此方法。
eg.]]></description><category></category></item><item><title><![CDATA[Thread中join用法]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/12068415</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/12068415</guid><author>mouttz</author><pubDate>Thu, 26 Sep 2013 21:50:57 +0800</pubDate><description><![CDATA[1.背景

Java支持多线程，CPU分配给线程的时间片是随机的，有时需要控制线程的执行顺序，如执行完threadA再去执行threadB
2.用法]]></description><category></category></item><item><title><![CDATA[如何将android源码导入到eclipse]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/8265928</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/8265928</guid><author>mouttz</author><pubDate>Thu, 06 Dec 2012 16:43:20 +0800</pubDate><description><![CDATA[如何将android源码导入到eclipse
1.在android-sdk-windows/platforms/android-8目录下自己新建一个sources文件夹 
2.把源码解压到这个文件夹下..sources目录下面就是android java等子目录..重启eclipse.. 


Note：如果你的eclipse下的android用的是android level 8 ,即a]]></description><category></category></item><item><title><![CDATA[dp和px，那些不得不吐槽的故事——Android平台图片文字元素单位浅析]]></title><link>https://blog.youkuaiyun.com/mouttz/article/details/8190888</link><guid>https://blog.youkuaiyun.com/mouttz/article/details/8190888</guid><author>mouttz</author><pubDate>Fri, 16 Nov 2012 14:49:41 +0800</pubDate><description><![CDATA[原文链接：http://blog.sina.com.cn/s/blog_6499f8f101014ipq.html（请直接跳转到原文）
一个优秀的手机软件，不仅要有精巧的功能，流畅的速度，让人赏心悦目的UI也往往是用户选择的重要理由。作为移动产品的PM，也需要了解一些在UI设计中的基本知识。



1. px和pt，一对好伙伴

在视觉设计中，我们经常会见到以下两个单位： px和磅数]]></description><category></category></item></channel></rss>