<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sunnyu</title>
	<atom:link href="http://www.sunnyu.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.sunnyu.com</link>
	<description>sunnyu的学习研究记录</description>
	<lastBuildDate>Tue, 15 May 2012 12:37:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>修改XCode中__MyCompanyName__的默认值</title>
		<link>http://www.sunnyu.com/?p=246</link>
		<comments>http://www.sunnyu.com/?p=246#comments</comments>
		<pubDate>Tue, 15 May 2012 12:37:02 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[LAMP]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=246</guid>
		<description><![CDATA[可以在工程属性的 Oragnization 中设置，但是这个只有在创建工程后才有作用，创建工程时所生成的文件中仍然是 __MyCompanyName__，在什么地方可以修改默认值呢？ 可以通过修改地址薄的方法。 1、打开地址簿程序 2、在菜单中选中 卡片－》前往我的卡片 如果没有卡片，可以新建一张卡片，然后使用菜单 卡片－》将这张设为我的卡片 3、打开卡片后，点击下面的编辑按钮，输入编辑公司信息 保存退出，再次在iOS SDK中创建文件，可以看到__MyCompanyName__已经变为所输入的公司信息]]></description>
			<content:encoded><![CDATA[<p>可以在工程属性的 Oragnization 中设置，但是这个只有在创建工程后才有作用，创建工程时所生成的文件中仍然是 __MyCompanyName__，在什么地方可以修改默认值呢？<br />
可以通过修改地址薄的方法。<br />
1、打开地址簿程序<br />
2、在菜单中选中 卡片－》前往我的卡片<br />
     如果没有卡片，可以新建一张卡片，然后使用菜单 卡片－》将这张设为我的卡片<br />
3、打开卡片后，点击下面的编辑按钮，输入编辑公司信息<br />
保存退出，再次在iOS SDK中创建文件，可以看到__MyCompanyName__已经变为所输入的公司信息</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=246</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给VS2010添加对所有工程都起作用的默认INCLUDE包含路径</title>
		<link>http://www.sunnyu.com/?p=244</link>
		<comments>http://www.sunnyu.com/?p=244#comments</comments>
		<pubDate>Sat, 21 Apr 2012 05:43:47 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=244</guid>
		<description><![CDATA[在WIN机器上安装了BOOST库，每次用VS2010新建使用BOOST库的工程时都要手工在工程文件中修改INCLUDE路径，烦，而VS2010去掉了以往在tools-&#62;option中设置全局默认INCLUDE路径的地方，网上找了一下，发现 这里有答案 http://stackoverflow.com/questions/3349378/edit-includepath-macro-in-visual-studio-2010 修改文件 C:\Documents and Settings\用户名\Local Settings\Application Data\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props WIN7下对应文件 C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props 在这里面添加了BOOST库的INCLUCE目录后，每个新建的工程中就默认有BOOST的INCLUCE路径了]]></description>
			<content:encoded><![CDATA[<p>在WIN机器上安装了BOOST库，每次用VS2010新建使用BOOST库的工程时都要手工在工程文件中修改INCLUDE路径，烦，而VS2010去掉了以往在tools-&gt;option中设置全局默认INCLUDE路径的地方，网上找了一下，发现<br />
这里有答案</p>
<p>http://stackoverflow.com/questions/3349378/edit-includepath-macro-in-visual-studio-2010</p>
<p>修改文件<br />
C:\Documents and Settings\用户名\Local Settings\Application Data\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props</p>
<p>WIN7下对应文件</p>
<p><code>C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props</code></p>
<p>在这里面添加了BOOST库的INCLUCE目录后，每个新建的工程中就默认有BOOST的INCLUCE路径了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=244</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给Postfix清空邮件发送队列</title>
		<link>http://www.sunnyu.com/?p=235</link>
		<comments>http://www.sunnyu.com/?p=235#comments</comments>
		<pubDate>Wed, 15 Feb 2012 01:53:22 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[LAMP]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=235</guid>
		<description><![CDATA[最近发现邮件日志大小一下子增长的很快，经过检查发现邮件服务器被发送了很多垃圾邮件,使用postqueue -p查看发现10多万封垃圾邮件. 因此不得不把所有的邮件队列全部清除,首先找到发垃圾邮件的帐号，予以停用。 然后执行如下命令顺序删除队列中的垃圾邮件。 1)首先停止postfix service postfix stop 2)清除所有发送队列 postsuper -d ALL 3)启动postfix service postfix start 这样就将待发送的垃圾邮件都删除了。]]></description>
			<content:encoded><![CDATA[<p>最近发现邮件日志大小一下子增长的很快，经过检查发现邮件服务器被发送了很多垃圾邮件,使用postqueue -p查看发现10多万封垃圾邮件.</p>
<p>因此不得不把所有的邮件队列全部清除,首先找到发垃圾邮件的帐号，予以停用。<br />
然后执行如下命令顺序删除队列中的垃圾邮件。</p>
<p>1)首先停止postfix<br />
  service postfix stop</p>
<p>2)清除所有发送队列<br />
    postsuper -d ALL</p>
<p>3)启动postfix<br />
   service postfix start</p>
<p>这样就将待发送的垃圾邮件都删除了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=235</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql运行出现Can&#8217;t open and lock privilege tables: Incorrect file format &#8216;host&#8217;</title>
		<link>http://www.sunnyu.com/?p=236</link>
		<comments>http://www.sunnyu.com/?p=236#comments</comments>
		<pubDate>Mon, 02 Jan 2012 15:53:50 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=236</guid>
		<description><![CDATA[一个安装lenny-debian系统的小设备，手快升级mysql后再启动mysql出现 120101 15:14:21 InnoDB: Started; log sequence number 0 73553 120101 15:14:21 [Note] Recovering after a crash using /var/log/mysql/mysql-bin 120101 15:14:21 [Note] Starting crash recovery... 120101 15:14:21 [Note] Crash recovery finished. 120101 15:14:21 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect file format 'host' 总是启动不了，google了一下，试验后发现使用下方法可以正常修复 step 1.使用 mysqld --skip-grant 命令启动mysql step 2.使用 mysqldump [...]]]></description>
			<content:encoded><![CDATA[<p>一个安装lenny-debian系统的小设备，手快升级mysql后再启动mysql出现</p>
<pre>120101 15:14:21  InnoDB: Started; log sequence number 0 73553
120101 15:14:21 [Note] Recovering after a crash using /var/log/mysql/mysql-bin
120101 15:14:21 [Note] Starting crash recovery...
120101 15:14:21 [Note] Crash recovery finished.
120101 15:14:21 [ERROR] Fatal error: Can't open and lock privilege tables: Incorrect file format 'host'

总是启动不了，google了一下，试验后发现使用下方法可以正常修复
step 1.使用 mysqld --skip-grant 命令启动mysql
step 2.使用 mysqldump 将库数据导出
step 3.使用 mysqladmin shutdown 停止mysqld 服务
step 4.在shell 下进入mysql数据目录，删除下面的 mysql 库
step 5.运行 mysql_install_db 重新创建默认的 mysql 库
step 6.运行mysqld服务，检查导入库数据，重新创建库用户、密码以及设置权限
step 7.执行cat /etc/mysql/debian.cnf 查看 debian-sys-maint帐号密码，运行mysql执行如下命令添加帐号
mysql&gt; GRANT ALL PRIVILEGES ON *.*  TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '前面看到的密码' WITH GRANT OPTION;
mysql&gt; FLUSH PRIVILEGES;
如果已有debian-sys-maint帐号，可以使用如下命令修改密码为前面看到的
mysql&gt;SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('前面看到的密码');
mysql&gt; FLUSH PRIVILEGES;

(如没有重要数据，可以忽略步骤1，2，3）</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=236</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CYGWIN在Win7下运行的一些小问题解决</title>
		<link>http://www.sunnyu.com/?p=233</link>
		<comments>http://www.sunnyu.com/?p=233#comments</comments>
		<pubDate>Mon, 29 Aug 2011 06:37:50 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[cygwin]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=233</guid>
		<description><![CDATA[换用Win7 64位系统，以前在XP下安装的cygwin环境直接拷贝过来运行有问题。 1.运行 bash -login 命令后，不能加载profile中设置的一些环境变量设置等 主要在注册表 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Cygnus Solutions\Cygwin 下添加如下一些键值，指明安装位置 mounts v2         cygdrive flags  REG_DWORD  22 cygdrive prefix REG_SZ   /cygdrive /                  flags   REG_DWORD  a native  REG_SZ          c:\cygwin /usr/bin         flags   REG_DWORD  a native  REG_SZ         c:\cygwin\bin /usr/lib          flags    REG_DWORD  a native  REG_SZ        c:\cygwin\lib 在每个项下添加的native为映射目录对应的本地磁盘路径 2.碰到系统拒绝读取问题 以管理员权限打开一个cmd窗口，执行如下几行命令 takeown /F "C:\cygwin" /R icacls "C:\cygwin" /grant Everyone:\(F\) /T icacls "C:\cygwin" chmod 777 -R [...]]]></description>
			<content:encoded><![CDATA[<p>换用Win7 64位系统，以前在XP下安装的cygwin环境直接拷贝过来运行有问题。</p>
<p>1.运行 bash -login 命令后，不能加载profile中设置的一些环境变量设置等</p>
<p>主要在注册表 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Cygnus Solutions\Cygwin 下添加如下一些键值，指明安装位置</p>
<pre><code>
mounts v2         cygdrive flags  REG_DWORD  22
                       cygdrive prefix REG_SZ   /cygdrive
    /                  flags    REG_DWORD    a
                       native  REG_SZ          c:\cygwin
    /usr/bin         flags    REG_DWORD    a
                       native  REG_SZ          c:\cygwin\bin
    /usr/lib          flags    REG_DWORD    a
                       native  REG_SZ          c:\cygwin\lib
</code></pre>
<p>在每个项下添加的native为映射目录对应的本地磁盘路径</p>
<p>2.碰到系统拒绝读取问题</p>
<p>以管理员权限打开一个cmd窗口，执行如下几行命令</p>
<pre><code>takeown /F "C:\cygwin" /R
icacls "C:\cygwin" /grant Everyone:\(F\) /T
icacls "C:\cygwin"
chmod 777 -R "c:\cygwin"
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=233</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>给RHEL5补装GCC编译环境</title>
		<link>http://www.sunnyu.com/?p=232</link>
		<comments>http://www.sunnyu.com/?p=232#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:11:59 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[RHEL]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=232</guid>
		<description><![CDATA[一台新的服务器，安装了最小安装的RHEL，缺少gcc编译环境，一些源码包安装的程序无法安装，需要为其重新补上gcc相关包。 进入备份的RHEL5安装文件目录下，执行 rpm -ivh 命令补上如下rpm包 [root@rhel5 Server]# rpm -ivh kernel-headers-2.6.18-53.el5.i386.rpm glibc-headers-2.5-18.i386.rpm glibc-devel-2.5-18.i386.rpm libgomp-4.1.2-14.el5.i386.rpm gcc-4.1.2-14.el5.i386.rpm libstdc++-devel-4.1.2-14.el5.i386.rpm gcc-c++-4.1.2-14.el5.i386.rpm 再次尝试源码编译，一切正常。]]></description>
			<content:encoded><![CDATA[<p>一台新的服务器，安装了最小安装的RHEL，缺少gcc编译环境，一些源码包安装的程序无法安装，需要为其重新补上gcc相关包。</p>
<p>进入备份的RHEL5安装文件目录下，执行 rpm -ivh 命令补上如下rpm包</p>
<p>[root@rhel5 Server]# rpm -ivh kernel-headers-2.6.18-53.el5.i386.rpm glibc-headers-2.5-18.i386.rpm glibc-devel-2.5-18.i386.rpm libgomp-4.1.2-14.el5.i386.rpm gcc-4.1.2-14.el5.i386.rpm libstdc++-devel-4.1.2-14.el5.i386.rpm gcc-c++-4.1.2-14.el5.i386.rpm</p>
<p>再次尝试源码编译，一切正常。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=232</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android中ListView控件的使用</title>
		<link>http://www.sunnyu.com/?p=217</link>
		<comments>http://www.sunnyu.com/?p=217#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:05:04 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=217</guid>
		<description><![CDATA[ListView要正常显示需要三个元素 1. 用来显示数据的 ListView 控件 2. 用来显示的数据 data 3. 用来将数据和 ListView 绑定的 ListAdapter 常见ListView风格 Android.R.layout.simple_list_item_1：每一项只有一个TextView Android.R.layout.simple_list_item_2：每一项有两个TextView,id分别为text1和text2 Android.R.layout.simpte.list_item_single_choice,每一项有一个TextView，但是这一项可以被选中。 常见的ListAdapter子类 1. ArrayAdapter 使用一个数组来存储数据，实际显示数组项中toString()方法获得字符串。 ListView listview=new ListView(this); // 构造一个listview对象 String&#91;&#93; data = &#123;&#34;item1&#34;,&#34;item2&#34;,&#34;item3&#34;&#125;; // 构造一个数组对象，也就是数据 listview.setAdapter&#40;new ArrayAdapter&#40;this,android.R.layout.simple_list_item_1, data&#41;&#41;; //构造一个array适配器，然后listview对象通过setAdapter方法调用适配器来和自己绑定数据 setContentView&#40;listview&#41;; 2. SimpleAdapter 派生的 SimpleCursorAdapter 和Sqlite数据绑定 一般用在 Android.R.layout.simple_list_item_2 一行数据有两行数据项的列表 SimpleAdapter需要传入一个数组列表和两个数组，其中数组列表用来存放实际数据，其中每一项为一个map，使用key=value方式存放数据。 两个数组一个为待显示的key名称，另外一个为显示数据的控件id // 构造数据部分 &#160; &#160; List&#60;map&#62;&#38;gt; data = new [...]]]></description>
			<content:encoded><![CDATA[<h3>ListView要正常显示需要三个元素</h3>
<p>1. 用来显示数据的 ListView 控件<br />
2. 用来显示的数据 data<br />
3. 用来将数据和 ListView 绑定的 ListAdapter</p>
<h3>常见ListView风格</h3>
<p>Android.R.layout.simple_list_item_1：每一项只有一个TextView<br />
Android.R.layout.simple_list_item_2：每一项有两个TextView,id分别为text1和text2<br />
Android.R.layout.simpte.list_item_single_choice,每一项有一个TextView，但是这一项可以被选中。</p>
<h3>常见的ListAdapter子类</h3>
<p>1. ArrayAdapter<br />
使用一个数组来存储数据，实际显示数组项中toString()方法获得字符串。</p>
<div class="geshi no java">
<div class="head">ListView listview=new ListView(this);</div>
<ol>
<li class="li1">
<div class="de1"><span class="co1">// 构造一个listview对象</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">String</span><span class="br0">&#91;</span><span class="br0">&#93;</span> data = <span class="br0">&#123;</span><span class="st0">&quot;item1&quot;</span>,<span class="st0">&quot;item2&quot;</span>,<span class="st0">&quot;item3&quot;</span><span class="br0">&#125;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// 构造一个数组对象，也就是数据</span></div>
</li>
<li class="li1">
<div class="de1">listview.<span class="me1">setAdapter</span><span class="br0">&#40;</span><span class="kw2">new</span> ArrayAdapter<span class="br0">&#40;</span><span class="kw2">this</span>,android.<span class="me1">R</span>.<span class="me1">layout</span>.<span class="me1">simple_list_item_1</span>, data<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//构造一个array适配器，然后listview对象通过setAdapter方法调用适配器来和自己绑定数据</span></div>
</li>
<li class="li1">
<div class="de1">setContentView<span class="br0">&#40;</span>listview<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>2. SimpleAdapter 派生的 SimpleCursorAdapter 和Sqlite数据绑定<br />
一般用在 Android.R.layout.simple_list_item_2 一行数据有两行数据项的列表<br />
SimpleAdapter需要传入一个数组列表和两个数组，其中数组列表用来存放实际数据，其中每一项为一个map，使用key=value方式存放数据。 两个数组一个为待显示的key名称，另外一个为显示数据的控件id</p>
<div class="geshi no java">
<div class="head">// 构造数据部分</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; List<span class="sy0">&lt;</span>map<span class="sy0">&gt;&amp;</span>gt<span class="sy0">;</span> data = <span class="kw2">new</span> ArrayList<span class="sy0">&lt;</span>/map<span class="sy0">&gt;&lt;</span>map<span class="sy0">&gt;&amp;</span>gt<span class="sy0">;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">Map</span> item<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; item = <span class="kw2">new</span> <span class="kw3">HashMap</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; item.<span class="me1">put</span><span class="br0">&#40;</span><span class="st0">&quot;name&quot;</span>,<span class="st0">&quot;张三&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; item.<span class="me1">put</span><span class="br0">&#40;</span><span class="st0">&quot;sex&quot;</span>,<span class="st0">&quot;男&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; data.<span class="me1">add</span><span class="br0">&#40;</span>item<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; item = <span class="kw2">new</span> <span class="kw3">HashMap</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; item.<span class="me1">put</span><span class="br0">&#40;</span>“name”,”李四”<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; item.<span class="me1">put</span><span class="br0">&#40;</span>“sex”,”女”<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; data.<span class="me1">add</span><span class="br0">&#40;</span>item<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//构造listview对象</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">ListView</span> listview= <span class="kw2">new</span> <span class="kw3">ListView</span><span class="br0">&#40;</span><span class="kw2">this</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="coMULTI">/*构造一个适配器。</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; * &nbsp; &nbsp;1，第三个参数是说明用的是系统默认的布局data,android.R.layout.simple_list_item_2</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; * &nbsp; &nbsp;2，第四和第五个参数一起理解：</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; * &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;把我们添加数据时姓名那一列对应到android.R.id.text1这个TextView中，把性别对应到android.R.id.text2这个TextView中。</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; SimpleAdapter adapter = <span class="kw2">new</span> SimpleAdapter<span class="br0">&#40;</span><span class="kw2">this</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; data,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; android.<span class="me1">R</span>.<span class="me1">layout</span>.<span class="me1">simple_list_item_2</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> <span class="kw3">String</span><span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#123;</span><span class="st0">&quot;name&quot;</span>,<span class="st0">&quot;sex&quot;</span><span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> <span class="kw4">int</span><span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#123;</span>android.<span class="me1">id</span>.<span class="me1">text1</span>,android.<span class="me1">R</span>.<span class="me1">id</span>.<span class="me1">text2</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">// 设置显示</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; listview.<span class="me1">setAdapter</span><span class="br0">&#40;</span>adapter<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; setContentView<span class="br0">&#40;</span>listview<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>/map<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=217</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android动态挂载事件处理</title>
		<link>http://www.sunnyu.com/?p=218</link>
		<comments>http://www.sunnyu.com/?p=218#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:04:35 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=218</guid>
		<description><![CDATA[好处， 1. 对代码块清晰方便阅读 2. 可以动态修改按钮的处理行为 如下列举了一下事件处理动态挂载处理方式 对Click事件做处理 private View.OnClickListener btnHandler = new View.OnClickListener() { &#160; &#160; &#160;public void onClick&#40;View v&#41; &#123; &#160; &#160; &#160; &#160; &#160; &#160; // doBtn Cmd &#160; &#160; &#160; &#125; &#160; &#160; &#125;; &#160; &#160; &#160; btn.setOnClickListener&#40;btnHandler&#41;; 对ListView的ItemClick事件做处理 AdapterView.OnItemClickListener listClickHandler = new AdapterView.OnItemClickListener() { &#160; @Override &#160; public void onItemClick&#40;AdapterView av, [...]]]></description>
			<content:encoded><![CDATA[<p>好处，<br />
1. 对代码块清晰方便阅读<br />
2. 可以动态修改按钮的处理行为<br />
如下列举了一下事件处理动态挂载处理方式</p>
<h3>对Click事件做处理</h3>
<div class="geshi no java">
<div class="head">private View.OnClickListener btnHandler = new View.OnClickListener() {</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw2">public</span> <span class="kw4">void</span> onClick<span class="br0">&#40;</span><span class="kw3">View</span> v<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// doBtn Cmd</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; btn.<span class="me1">setOnClickListener</span><span class="br0">&#40;</span>btnHandler<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<h3>对ListView的ItemClick事件做处理</h3>
<div class="geshi no java">
<div class="head">AdapterView.OnItemClickListener listClickHandler = new AdapterView.OnItemClickListener() {</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; @Override</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onItemClick<span class="br0">&#40;</span>AdapterView av, <span class="kw3">View</span> v, <span class="kw4">int</span> selID, <span class="kw4">long</span> resid <span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw1">switch</span> <span class="br0">&#40;</span>selID<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="nu0">0</span>: <span class="co1">// cmd0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; doCmd0<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw2">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">case</span> <span class="nu0">5</span>: <span class="co1">// about</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;showAbout<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw2">break</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;listView.<span class="me1">setOnItemClickListener</span><span class="br0">&#40;</span>listClickHandler<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=218</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Android使用AlterDialog输入简单数据</title>
		<link>http://www.sunnyu.com/?p=219</link>
		<comments>http://www.sunnyu.com/?p=219#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:04:11 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=219</guid>
		<description><![CDATA[使用AlterDialog实现其他语言类似InputBox之类的简单数据输入。 AlertDialog.Builder alert = new AlertDialog.Builder(this); &#160; &#160; &#160;alter.setIcon&#40;getResources&#40;&#41;.getDrawable&#40;R.drawable.icon&#41;&#41;; &#160; &#160;alert.setTitle&#40;&#34;输入框标题&#34;&#41;; &#160; &#160;alert.setMessage&#40;&#34;输入提示信息&#34;&#41;; &#160; &#160; &#160; &#160;// 添加一个EditText输入数据 &#160; &#160;final EditText input = new EditText&#40;this&#41;; &#160; &#160;alert.setView&#40;input&#41;; &#160; &#160; &#160; &#160;alert.setPositiveButton&#40;&#34;确定&#34;, new DialogInterface.OnClickListener&#40;&#41; &#123; &#160; &#160;public void onClick&#40;DialogInterface dialog, int whichButton&#41; &#123; &#160; &#160; &#160;String value = input.getText&#40;&#41;; &#160; &#160; &#160; &#160;// 对输入的数据做处理 &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>使用AlterDialog实现其他语言类似InputBox之类的简单数据输入。</p>
<div class="geshi no java">
<div class="head">AlertDialog.Builder alert = new AlertDialog.Builder(this);</div>
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alter.<span class="me1">setIcon</span><span class="br0">&#40;</span>getResources<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">getDrawable</span><span class="br0">&#40;</span>R.<span class="me1">drawable</span>.<span class="me1">icon</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alert.<span class="me1">setTitle</span><span class="br0">&#40;</span><span class="st0">&quot;输入框标题&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alert.<span class="me1">setMessage</span><span class="br0">&#40;</span><span class="st0">&quot;输入提示信息&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="co1">// 添加一个EditText输入数据</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">final</span> EditText input = <span class="kw2">new</span> EditText<span class="br0">&#40;</span><span class="kw2">this</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alert.<span class="me1">setView</span><span class="br0">&#40;</span>input<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alert.<span class="me1">setPositiveButton</span><span class="br0">&#40;</span><span class="st0">&quot;确定&quot;</span>, <span class="kw2">new</span> DialogInterface.<span class="me1">OnClickListener</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">public</span> <span class="kw4">void</span> onClick<span class="br0">&#40;</span>DialogInterface dialog, <span class="kw4">int</span> whichButton<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw3">String</span> value = input.<span class="me1">getText</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// 对输入的数据做处理</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alert.<span class="me1">setNegativeButton</span><span class="br0">&#40;</span><span class="st0">&quot;取消&quot;</span>, <span class="kw2">new</span> DialogInterface.<span class="me1">OnClickListener</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="kw2">public</span> <span class="kw4">void</span> onClick<span class="br0">&#40;</span>DialogInterface dialog, <span class="kw4">int</span> whichButton<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// 做取消输入的事情</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//显示对话框等待输入数据</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;alert.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=219</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCode4将已存在的cvs工程添加到git库中</title>
		<link>http://www.sunnyu.com/?p=230</link>
		<comments>http://www.sunnyu.com/?p=230#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:03:03 +0000</pubDate>
		<dc:creator>sunny</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.sunnyu.com/?p=230</guid>
		<description><![CDATA[XCode4去除了一些版本库的支持，现在只支持git和svn,早先使用的cvs库就需要做下处理，才能继续使用XCode集成的版本库功能。 添加到本地 git 库中 步骤1. 在终端下先转到项目所在目录 步骤2. 执行 git init 创建本地库 步骤3. 使用 vi .gitignore 添加要忽略的目录和文件 步骤4. 使用 git add .gitignore 步骤5. 执行 git commit &#8220;初始化库&#8221; 步骤6. 添加所有项目文件 git add -A 步骤7. 执行 git commit &#8220;初次代码入库&#8221; 经过以上处理后，再在XCode4打开项目，发现已经可以使用集成的git版本库功能了。]]></description>
			<content:encoded><![CDATA[<p>XCode4去除了一些版本库的支持，现在只支持git和svn,早先使用的cvs库就需要做下处理，才能继续使用XCode集成的版本库功能。</p>
<p>添加到本地 git 库中</p>
<p>步骤1. 在终端下先转到项目所在目录<br />
步骤2. 执行 git init 创建本地库<br />
步骤3. 使用 vi .gitignore 添加要忽略的目录和文件<br />
步骤4. 使用 git add .gitignore<br />
步骤5. 执行 git commit &#8220;初始化库&#8221;<br />
步骤6. 添加所有项目文件 git add -A<br />
步骤7. 执行 git commit &#8220;初次代码入库&#8221;</p>
<p>经过以上处理后，再在XCode4打开项目，发现已经可以使用集成的git版本库功能了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sunnyu.com/?feed=rss2&amp;p=230</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

