<?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>寂 寞 喝 口 水</title>
	<atom:link href="http://www.chendw.cn/feed" rel="self" type="application/rss+xml" />
	<link>http://www.chendw.cn</link>
	<description>技术源于经验，经验来源于积累！</description>
	<lastBuildDate>Wed, 22 Feb 2012 02:15:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>解决Eclipse3.6中Android 代码自动补全卡死的问题</title>
		<link>http://www.chendw.cn/problemsolving/645.html</link>
		<comments>http://www.chendw.cn/problemsolving/645.html#comments</comments>
		<pubDate>Wed, 22 Feb 2012 02:14:04 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[问题解决]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=645</guid>
		<description><![CDATA[1.下载Eclipse plugin 补丁文件 org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar:(下载地址http://115.com/file/dpyccotd) 2.将解压缩后的jar包 放到Eclipse的目录中的Plugin下面, 3.Android开发时代码提示卡死的问题应该已经解决.如果Java代码开发比较忙,参考以下步骤 4. 找到你的JDK安装目录下的src.zip文件； 5. 打开eclipse: Window菜单->Preference->Java->Installed JREs； 6. 在列表中选择你eclipse正在使用的JRE，然后Edit； 7. 选择rt.jar，然后点击"Source Attachment"按钮，弹出对话框后选择"External File"，然后把你的JDK安装目录下的src.zip文件与rt.jar关联上。 =================================================================================== 网上说3.6版换回3.5即可，未测试，不过大部分人反映可解决卡顿问题。]]></description>
			<content:encoded><![CDATA[<p>1.下载Eclipse plugin 补丁文件 org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar:(下载地址<a href="http://115.com/file/dpyccotd">http://115.com/file/dpyccotd</a>)<br />
2.将解压缩后的jar包 放到Eclipse的目录中的Plugin下面,<br />
3.Android开发时代码提示卡死的问题应该已经解决.如果Java代码开发比较忙,参考以下步骤<br />
4. 找到你的JDK安装目录下的src.zip文件；<br />
5. 打开eclipse: Window菜单->Preference->Java->Installed JREs；<br />
6. 在列表中选择你eclipse正在使用的JRE，然后Edit；<br />
7. 选择rt.jar，然后点击"Source Attachment"按钮，弹出对话框后选择"External File"，然后把你的JDK安装目录下的src.zip文件与rt.jar关联上。<br />
===================================================================================<br />
网上说3.6版换回3.5即可，未测试，不过大部分人反映可解决卡顿问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/problemsolving/645.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>svn: Can&#8217;t open file &#8216;***/txn-current-lock&#8217;: Permission denied解决</title>
		<link>http://www.chendw.cn/problemsolving/639.html</link>
		<comments>http://www.chendw.cn/problemsolving/639.html#comments</comments>
		<pubDate>Mon, 13 Feb 2012 08:52:28 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[问题解决]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Svn]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=639</guid>
		<description><![CDATA[主要有两种可能 1、目录权限问题： chmod -R 775 /opt/svn 尝试提交svn，如果可以则结束，如果不行则继续往下 2、如果是linux的服务器那么需要关闭SElinux，命令如下： 临时关闭下次重启后失效：setenforce 0 永久关闭：vi /etc/sysconfig/selinux #配置SELINUX=disable]]></description>
			<content:encoded><![CDATA[<p>主要有两种可能</p>
<p>1、目录权限问题：</p>
<p>chmod -R 775 /opt/svn</p>
<p>尝试提交svn，如果可以则结束，如果不行则继续往下</p>
<p>2、如果是linux的服务器那么需要关闭SElinux，命令如下：</p>
<p>临时关闭下次重启后失效：setenforce 0</p>
<p>永久关闭：vi /etc/sysconfig/selinux #配置SELINUX=disable</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/problemsolving/639.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一次修复磁盘出错导致无法启动【转】</title>
		<link>http://www.chendw.cn/problemsolving/634.html</link>
		<comments>http://www.chendw.cn/problemsolving/634.html#comments</comments>
		<pubDate>Thu, 19 Jan 2012 09:10:41 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[问题解决]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=634</guid>
		<description><![CDATA[重启机器，结果在启动到这里的时候出错了： Checking filesystems /dev/VolGroup00/LogVol00 contains a file system with errors, check forced. /dev/VolGroup00/LogVol00: Inodes that were part of a corrupted orphan linked list found /dev/VolGroup00/LogVol00: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options)                              [FAILED] 输入root密码登陆之后尝试以下命令修复重启成功：fsck.ext3 /dev/VolGroup00/LogVol00]]></description>
			<content:encoded><![CDATA[<p>重启机器，结果在启动到这里的时候出错了：<br />
Checking filesystems /dev/VolGroup00/LogVol00 contains a file system with errors, check forced.<br />
/dev/VolGroup00/LogVol00:<br />
Inodes that were part of a corrupted orphan linked list found<br />
/dev/VolGroup00/LogVol00:<br />
UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.<br />
(i.e., without -a or -p options)                              [FAILED]</p>
<p>输入root密码登陆之后尝试以下命令修复重启成功：fsck.ext3 /dev/VolGroup00/LogVol00</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/problemsolving/634.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Crontab表达式</title>
		<link>http://www.chendw.cn/soft/626.html</link>
		<comments>http://www.chendw.cn/soft/626.html#comments</comments>
		<pubDate>Fri, 30 Dec 2011 05:23:22 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[资源软件]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=626</guid>
		<description><![CDATA[语法介绍 使用权限: root用户和crontab文件的所有者 crontab格式语法: crontab [-e [UserName]&#124;-l [UserName]&#124;-r [UserName]&#124;-v [UserName]&#124;File ] 说明: crontab 是用来让使用者在固定时间或固定间隔执行程序之用，换句话说，也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表，这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话，就是表示设定自己的时程表。 参数: -e [UserName]: 执行文字编辑器来设定时程表，内定的文字编辑器是 VI，如果你想用别的文字编辑器，则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) -r [UserName]: 删除目前的时程表 -l [UserName]: 列出目前的时程表 -v [UserName]:列出用户cron作业的状态 时程表的格式如下: f1 f2 f3 f4 f5 program 其中 f1 是表示分钟，f2 表示小时，f3 表示一个月份中的第几日，f4 表示月份，f5 表示一个星期中的第几天。program 表示要执行的程式。 [...]]]></description>
			<content:encoded><![CDATA[<p>语法介绍</p>
<p>使用权限: root用户和crontab文件的所有者</p>
<p>crontab格式语法:</p>
<p>crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]</p>
<p>说明:</p>
<p>crontab 是用来让使用者在固定时间或固定间隔执行程序之用，换句话说，也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表，这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话，就是表示设定自己的时程表。</p>
<p>参数:</p>
<p>-e [UserName]: 执行文字编辑器来设定时程表，内定的文字编辑器是 VI，如果你想用别的文字编辑器，则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)</p>
<p>-r [UserName]: 删除目前的时程表</p>
<p>-l [UserName]: 列出目前的时程表</p>
<p>-v [UserName]:列出用户cron作业的状态</p>
<p>时程表的格式如下:</p>
<p>f1 f2 f3 f4 f5 program</p>
<p>其中 f1 是表示分钟，f2 表示小时，f3 表示一个月份中的第几日，f4 表示月份，f5 表示一个星期中的第几天。program 表示要执行的程式。</p>
<p>当 f1 为 * 时表示每分钟都要执行 program，f2 为 * 时表示每小时都要执行程式，其余类推</p>
<p>当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行，f2 为 a-b 时表示从第 a 到第 b 小时都要执行，其余类推</p>
<p>当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次，f2 为 */n 表示每 n 小时个时间间隔执行一次，其余类推</p>
<p>当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行，f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行，其余类推</p>
<p>使用者也可以将所有的设定先存放在档案 file 中，用 crontab file 的方式来设定时程表。</p>
<p>由于unix版本不一样，所以部分语法有差别，例如在hp unix aix 中设定间隔执行如果采用*/n 方式将出现语法错误，在这类unix中 ，间隔执行只能以列举方式，详请见例子。</p>
<p>常用表达式：</p>
<p>&nbsp;</p>
<p>每晚21：30分执行一次：30 21 * * *</p>
<p>每分钟执行一次：*/1 * * * *</p>
<p>每10秒执行一次：*:10 * * * *</p>
<p>每月1、10、22日的4 : 45执行一次：45 4 1,10,22 * *</p>
<p>每天18 : 00至23 : 00之间每隔30分钟执行：0,30 18-23 * * *</p>
<p>&nbsp;</p>
<p>备注：当程式在你所指定的时间执行后，系统会寄一封信给你，显示该程式执行的内容，若是你不希望收到这样的信，请在每一行空一格之后加上 &gt; /dev/null 2&gt;&amp;1 即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/soft/626.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux下Oracle归档日志自动清理脚本（sh）</title>
		<link>http://www.chendw.cn/original/622.html</link>
		<comments>http://www.chendw.cn/original/622.html#comments</comments>
		<pubDate>Tue, 27 Dec 2011 07:58:37 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[本站原创]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=622</guid>
		<description><![CDATA[可以将以下代码保存为.sh文件，并放到crontab里就可以实现自动清理。 #!/bin/sh    export BACK_DATE=`date +%Y%m%d`    export BACKUP_PATH=/home/oracle/dbbak    echo `mkdir -p ${BACKUP_PATH}/archivelog/${BACK_DATE}`    rman msglog=$BACKUP_PATH/archivelog/${BACK_DATE}/arch_0_$BACK_DATE.log &#60;&#60; EOF    connect target /;    delete expired archivelog all;    delete noprompt archivelog until time 'sysdate - 1' ;    exit    EOF   ]]></description>
			<content:encoded><![CDATA[<p>可以将以下代码保存为.sh文件，并放到crontab里就可以实现自动清理。</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-py">
<li class="alt"><span><span class="comment">#!/bin/sh </span><span>  </span></span></li>
<li><span>export BACK_DATE=`date +%Y%m%d`   </span></li>
<li class="alt"><span>export BACKUP_PATH=/home/oracle/dbbak   </span></li>
<li><span>echo `mkdir -p ${BACKUP_PATH}/archivelog/${BACK_DATE}`   </span></li>
<li class="alt"><span>rman msglog=$BACKUP_PATH/archivelog/${BACK_DATE}/arch_0_$BACK_DATE.log &lt;&lt; EOF   </span></li>
<li><span>connect target /;   </span></li>
<li class="alt"><span>delete expired archivelog all;   </span></li>
<li><span>delete noprompt archivelog until </span><span class="commonlibs">time</span><span> 'sysdate - 1' ;   </span></li>
<li class="alt"><span>exit   </span></li>
<li><span>EOF   </span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/original/622.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux使用lftp进行文件夹同步</title>
		<link>http://www.chendw.cn/programming/617.html</link>
		<comments>http://www.chendw.cn/programming/617.html#comments</comments>
		<pubDate>Mon, 26 Dec 2011 02:42:52 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[lftp]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=617</guid>
		<description><![CDATA[今天遇到个需求，需要将正式环境的备份的数据库文件同步到备用服务器上，看了下lftp的命令可以很好的实现文件夹同步的功能。 先来熟悉下 了lftp 的基本用法，如果 ftp 服务器是匿名，只要： lftp ftpsite 就可以登录进服务器，如果需要用户名和密码，就要像下面的样子： lftp -u username,password ftpsite mirror 需要备份的目录 保存备份计算机的本地目录 例如 mirror /work save/backup，这样 lftp 就会帮你自动同步目录下的所有文件。你也可以给 mirror 命令传入参数，控制同步的行为： --delete: 如果远程目录下已经没有某个文件，而本地有，则删除这个文件。 --only-newer: 只下载新的文件。 --exculde: 不包含某个目录。 --verbose: 详细输出。 举例： mirror --delete --only-newer --verbose /work backup/ 自动备份远处电脑的 work文件夹，到本地当前目录的 backup文件夹下，并且删除已经不存在的文件，并且只下载最新的文件，再给出详细的输出。你也可以用 lftp 的 -e 选项，把命令直接接在 lftp 之后： lftp -u username,password -e"mirror --delete --only-newer --verbose [...]]]></description>
			<content:encoded><![CDATA[<p>今天遇到个需求，需要将正式环境的备份的数据库文件同步到备用服务器上，看了下lftp的命令可以很好的实现文件夹同步的功能。</p>
<p>先来熟悉下 了lftp 的基本用法，如果 ftp 服务器是匿名，只要：</p>
<p>lftp ftpsite</p>
<p>就可以登录进服务器，如果需要用户名和密码，就要像下面的样子：</p>
<p>lftp -u username,password ftpsite</p>
<p>mirror 需要备份的目录 保存备份计算机的本地目录</p>
<p>例如 mirror /work save/backup，这样 lftp 就会帮你自动同步目录下的所有文件。你也可以给 mirror 命令传入参数，控制同步的行为：</p>
<p>--delete: 如果远程目录下已经没有某个文件，而本地有，则删除这个文件。</p>
<p>--only-newer: 只下载新的文件。</p>
<p>--exculde: 不包含某个目录。</p>
<p>--verbose: 详细输出。</p>
<p>举例：</p>
<p>mirror --delete --only-newer --verbose /work backup/</p>
<p>自动备份远处电脑的 work文件夹，到本地当前目录的 backup文件夹下，并且删除已经不存在的文件，并且只下载最新的文件，再给出详细的输出。你也可以用 lftp 的 -e 选项，把命令直接接在 lftp 之后：</p>
<p>lftp -u username,password -e"mirror --delete --only-newer --verbose /work backup/" ftpsite</p>
<p>也可以用 at 选项指定备份的时间：</p>
<p>lftp at 00:00 -u username,password -e"mirror --delete --only-newer --verbose /work backup/" ftpsite</p>
<p>这样每天夜里 12 点就会执行备份任务。</p>
<p>那么，如何恢复备份呢，很简单，只需要在 mirror 命令中加入 --reverse 选项：</p>
<p>mirror --reverse --delete --only-newer --verbose /work backup/</p>
<p>这样 lftp 就会将备份上传到 ftp 服务器上了。</p>
<p>同时还可以写成bak.sh脚本放到crontab里定时执行</p>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-perl">
<li class="alt"><span><span class="comment">#!/bin/sh </span><span>  </span></span></li>
<li><span>HOST=</span><span class="string">"192.168.1.2"</span><span>  </span></li>
<li class="alt"><span>USER=</span><span class="string">"oracle"</span><span>  </span></li>
<li><span>PASS=</span><span class="string">"123456"</span><span>  </span></li>
<li class="alt"><span>PORT=</span><span class="string">"22"</span><span>  </span></li>
<li><span>    </span></li>
<li class="alt"><span>cd /home/oracle/dbbak   </span><span class="comment">##下载备份文件存放的本地目录 </span><span>  </span></li>
<li><span>echo </span><span class="string">"Starting to sftp"</span><span>  </span></li>
<li class="alt"><span>    </span></li>
<li><span>lftp -p ${PORT} -u ${USER},${PASS} sftp://${HOST} &gt;&gt; /home/oracle/debug.</span><span class="func">log</span><span> 2&gt;&amp;1 &lt;&lt;</span><span class="func">EOF</span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>mirror --</span><span class="func">delete</span><span> --only-newer --verbose /home/oracle/dbbak /home/oracle/dbbak   </span></li>
<li class="alt"><span>bye   </span></li>
<li><span class="func">EOF</span><span>  </span></li>
<li class="alt"><span>echo </span><span class="string">"done"</span><span>  </span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/programming/617.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android里string.xml使用html标签的方法</title>
		<link>http://www.chendw.cn/programming/606.html</link>
		<comments>http://www.chendw.cn/programming/606.html#comments</comments>
		<pubDate>Wed, 21 Dec 2011 08:07:59 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=606</guid>
		<description><![CDATA[方法1、使用 CDATA（推荐） &#60;string name="demoStr"&#62;&#60;Data&#62;&#60;![CDATA[ &#60;b&#62;ABC&#60;/b&#62; ]]&#62; &#60;/Data&#62;&#60;/string&#62; 方法2、转义HTML标签 &#60;string name="myHeadStr"&#62;&#38;lt;b&#62;&#38;lt;u&#62;bold, underline &#38;lt;/u&#62;&#38;lt;/b&#62;&#60;/string&#62; 在程序里引用： Html.fromHtml(getResources().getString(R.string.myHeadStr)); 效果图 android string html标签用法 string.xml代码 Code   ViewCopyPrint &#60;string name="test"&#62;&#60;Data&#62;&#60;![CDATA[ &#60;b&#62;&#60;font color="#ff0000"&#62;ABC&#60;/font&#62;&#60;/b&#62; ]]&#62;&#60;/Data&#62;&#60;/string&#62;   java代码： Code   ViewCopyPrint import android.app.Activity;    import android.app.AlertDialog;    import android.content.DialogInterface;    import android.os.Bundle;    import android.text.Html;       public class testActivity extends Activity {        public void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            AlertDialog.Builder dialog = new AlertDialog.Builder(testActivity.this);            dialog.setTitle("测试HTML标签").setMessage(Html.fromHtml(getString(R.string.test))).setPositiveButton(getString(R.string.btn_confirm), new DialogInterface.OnClickListener() {                public void onClick(DialogInterface dialog, int which) {                   }            }).create().show();        }    }   ]]></description>
			<content:encoded><![CDATA[<div>方法1、使用 CDATA（推荐）</div>
<div></div>
<div></div>
<div>&lt;string name="demoStr"&gt;&lt;Data&gt;&lt;![CDATA[ &lt;b&gt;ABC&lt;/b&gt; ]]&gt; &lt;/Data&gt;&lt;/string&gt;</div>
<div></div>
<div></div>
<div>方法2、转义HTML标签</div>
<div></div>
<div>&lt;string name="myHeadStr"&gt;&amp;lt;b&gt;&amp;lt;u&gt;bold, underline &amp;lt;/u&gt;&amp;lt;/b&gt;&lt;/string&gt;</div>
<div></div>
<div>在程序里引用：</div>
<div></div>
<div>Html.fromHtml(getResources().getString(R.string.myHeadStr));</div>
<div></div>
<div>效果图</div>
<div>
<div class="mceTemp">
<dl id="attachment_607" class="wp-caption alignnone" style="width: 397px;">
<dt class="wp-caption-dt"></dt>
<dd class="wp-caption-dd">android string html标签用法</dd>
</dl>
</div>
</div>
<div><a href="http://www.chendw.cn/wp-content/uploads/2011/12/20111221160111.png" class="highslide-image" onclick="return hs.expand(this);"><img class="alignnone size-full wp-image-611" title="20111221160111" src="http://www.chendw.cn/wp-content/uploads/2011/12/20111221160111.png" alt="" width="387" height="239" /></a></div>
<div>string.xml代码</div>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">string</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"test"</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">Data</span><span class="tag">&gt;</span><span class="cdata">&lt;![CDATA[ &lt;b&gt;&lt;font color="#ff0000"&gt;ABC&lt;/font&gt;&lt;/b&gt; ]]&gt;</span><span class="tag">&lt;/</span><span class="tag-name">Data</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">string</span><span class="tag">&gt;</span><span>  </span></span></li>
</ol>
</div>
<p>java代码：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="keyword">import</span><span> android.app.Activity;   </span></span></li>
<li><span class="keyword">import</span><span> android.app.AlertDialog;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.content.DialogInterface;   </span></li>
<li><span class="keyword">import</span><span> android.os.Bundle;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.text.Html;   </span></li>
<li><span>  </span></li>
<li class="alt"><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> testActivity </span><span class="keyword">extends</span><span> Activity {   </span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) {   </span></li>
<li class="alt"><span>        </span><span class="keyword">super</span><span>.onCreate(savedInstanceState);   </span></li>
<li><span>        AlertDialog.Builder dialog = </span><span class="keyword">new</span><span> AlertDialog.Builder(testActivity.</span><span class="keyword">this</span><span>);   </span></li>
<li class="alt"><span>        dialog.setTitle(</span><span class="string">"测试HTML标签"</span><span>).setMessage(Html.fromHtml(getString(R.string.test))).setPositiveButton(getString(R.string.btn_confirm), </span><span class="keyword">new</span><span> DialogInterface.OnClickListener() {   </span></li>
<li><span>            </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onClick(DialogInterface dialog, </span><span class="keyword">int</span><span> which) {   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            }   </span></li>
<li class="alt"><span>        }).create().show();   </span></li>
<li><span>    }   </span></li>
<li class="alt"><span>}   </span></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/programming/606.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android 菜单(OptionMenu)大全 建立你自己的菜单[转]</title>
		<link>http://www.chendw.cn/programming/588.html</link>
		<comments>http://www.chendw.cn/programming/588.html#comments</comments>
		<pubDate>Wed, 21 Dec 2011 01:20:16 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[编程技术]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=588</guid>
		<description><![CDATA[　　菜单是用户界面中最常见的元素之一，使用非常频繁，在Android中，菜单被分为如下三种，选项菜单（OptionsMenu）、上下文菜单（ContextMenu）和子菜单（SubMenu），今天这讲是OptionsMenu<br/>
　　一、概述<br/>
　　public boolean onCreateOptionsMenu(Menu menu)：使用此方法调用OptionsMenu。<br/>
　　public boolean onOptionsItemSelected(MenuItem item)：选中菜单项后发生的动作。<br/>
]]></description>
			<content:encoded><![CDATA[<p>菜单是用户界面中最常见的元素之一，使用非常频繁，在Android中，菜单被分为如下三种，选项菜单（OptionsMenu）、上下文菜单（ContextMenu）和子菜单（SubMenu），今天这讲是OptionsMenu</p>
<p>一、概述</p>
<p>public boolean onCreateOptionsMenu(Menu menu)：使用此方法调用OptionsMenu　。</p>
<p>public boolean onOptionsItemSelected(MenuItem item)：选中菜单项后发生的动作。</p>
<p>public void onOptionsMenuClosed(Menu menu):菜单关闭后发生的动作。</p>
<p>public boolean onPrepareOptionsMenu(Menu menu)：选项菜单显示之前onPrepareOptionsMenu方法会被调用，你可以用此方法来根据打当时的情况调整菜单。</p>
<p>public boolean onMenuOpened(int featureId, Menu menu)：单打开后发生的动作。</p>
<p>二、默认样式</p>
<p>默认样式是在屏幕底部弹出一个菜单，这个菜单我们就叫他选项菜单OptionsMenu，一般情况下，选项菜单最多显示2排每排3个菜单项，这些菜单项有文字有图标，也被称作Icon Menus，如果多于6项，从第六项开始会被隐藏，在第六项会出现一个More里，点击More才出现第六项以及以后的菜单项，这些菜单项也被称作Expanded Menus。下面介绍。</p>
<p>&nbsp;</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span> </span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">"wrap_content"</span><span>  </span></span></li>
<li><span>    </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">"wrap_content"</span><span> </span><span class="attribute">android:text</span><span>=</span><span class="attribute-value">"请点击 Menu键显示选项菜单"</span><span>  </span></li>
<li class="alt"><span>    </span><span class="attribute">android:id</span><span>=</span><span class="attribute-value">"@+id/TextView02"</span><span> </span><span class="tag">/&gt;</span><span>  </span></li>
<li><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>  </span></li>
</ol>
</div>
<p>2。重载onCreateOptionsMenu(Menu menu)方法<br />
重载onCreateOptionsMenu(Menu menu)方法，并在此方法中添加菜单项，最后返回true，如果false，菜单则不会显示。</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="annotation">@Override</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onCreateOptionsMenu(Menu menu) {   </span></li>
<li class="alt"><span>        </span><span class="comment">/* </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * add()方法的四个参数，依次是： </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 1、组别，如果不分组的话就写Menu.NONE, </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 2、Id，这个很重要，Android根据这个Id来确定不同的菜单 </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 3、顺序，那个菜单现在在前面由这个参数的大小决定 </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 4、文本，菜单的显示文本 </span> </span></li>
<li><span><span class="comment">         */</span><span>  </span></span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">1</span><span>, </span><span class="number">5</span><span>, </span><span class="string">"删除"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_delete);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// setIcon()方法为菜单设置图标，这里使用的是系统自带的图标，同学们留意一下,以 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// android.R开头的资源是系统提供的，我们自己提供的资源是以R开头的 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">2</span><span>, </span><span class="number">2</span><span>, </span><span class="string">"保存"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_edit);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">3</span><span>, </span><span class="number">6</span><span>, </span><span class="string">"帮助"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_help);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">4</span><span>, </span><span class="number">1</span><span>, </span><span class="string">"添加"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_add);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">5</span><span>, </span><span class="number">4</span><span>, </span><span class="string">"详细"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_info_details);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">6</span><span>, </span><span class="number">3</span><span>, </span><span class="string">"发送"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_send);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">true</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    }  </span></li>
</ol>
</div>
<p>3。为菜单项注册事件<br />
使用onOptionsItemSelected(MenuItem item)方法为菜单项注册事件</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="annotation">@Override</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onOptionsItemSelected(MenuItem item) {   </span></li>
<li class="alt"><span>        </span><span class="keyword">switch</span><span> (item.getItemId()) {   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">1</span><span>:   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"删除菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">2</span><span>:   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"保存菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">3</span><span>:   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"帮助菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">4</span><span>:   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"添加菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">5</span><span>:   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"详细菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">6</span><span>:   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"发送菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">false</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    }  </span></li>
</ol>
</div>
<p>4。其他按需要重载<br />
完整代码</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="keyword">package</span><span> com.wjq.menu;   </span></span></li>
<li><span>  </span></li>
<li class="alt"><span class="keyword">import</span><span> android.app.Activity;   </span></li>
<li><span class="keyword">import</span><span> android.os.Bundle;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.view.Menu;   </span></li>
<li><span class="keyword">import</span><span> android.view.MenuItem;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.widget.Toast;   </span></li>
<li><span>  </span></li>
<li class="alt"><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> DefaultMenu </span><span class="keyword">extends</span><span> Activity {   </span></li>
<li><span>    </span><span class="comment">/** Called when the activity is first created. */</span><span>  </span></li>
<li class="alt"><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) {   </span></li>
<li class="alt"><span>        </span><span class="keyword">super</span><span>.onCreate(savedInstanceState);   </span></li>
<li><span>        setContentView(R.layout.main);   </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onCreateOptionsMenu(Menu menu) {   </span></li>
<li class="alt"><span>        </span><span class="comment">/* </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * add()方法的四个参数，依次是： </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 1、组别，如果不分组的话就写Menu.NONE, </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 2、Id，这个很重要，Android根据这个Id来确定不同的菜单 </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 3、顺序，那个菜单现在在前面由这个参数的大小决定 </span> </span></li>
<li><span><span class="comment">         *  </span> </span></li>
<li class="alt"><span><span class="comment">         * 4、文本，菜单的显示文本 </span> </span></li>
<li><span><span class="comment">         */</span><span>  </span></span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">1</span><span>, </span><span class="number">5</span><span>, </span><span class="string">"删除"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_delete);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// setIcon()方法为菜单设置图标，这里使用的是系统自带的图标，同学们留意一下,以 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="comment">// android.R开头的资源是系统提供的，我们自己提供的资源是以R开头的 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">2</span><span>, </span><span class="number">2</span><span>, </span><span class="string">"保存"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_edit);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">3</span><span>, </span><span class="number">6</span><span>, </span><span class="string">"帮助"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_help);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">4</span><span>, </span><span class="number">1</span><span>, </span><span class="string">"添加"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_add);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">5</span><span>, </span><span class="number">4</span><span>, </span><span class="string">"详细"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_info_details);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menu.add(Menu.NONE, Menu.FIRST + </span><span class="number">6</span><span>, </span><span class="number">3</span><span>, </span><span class="string">"发送"</span><span>).setIcon(   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        android.R.drawable.ic_menu_send);   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">true</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    }   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onOptionsItemSelected(MenuItem item) {   </span></li>
<li><span>        </span><span class="keyword">switch</span><span> (item.getItemId()) {   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">1</span><span>:   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"删除菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">2</span><span>:   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"保存菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">3</span><span>:   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"帮助菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">4</span><span>:   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"添加菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">5</span><span>:   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"详细菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">case</span><span> Menu.FIRST + </span><span class="number">6</span><span>:   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"发送菜单被点击了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>  </span></li>
<li><span>            </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        }   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">false</span><span>;   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    }   </span></li>
<li class="alt"><span>  </span></li>
<li><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onOptionsMenuClosed(Menu menu) {   </span></li>
<li><span>        Toast.makeText(</span><span class="keyword">this</span><span>, </span><span class="string">"选项菜单关闭了"</span><span>, Toast.LENGTH_LONG).show();   </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onPrepareOptionsMenu(Menu menu) {   </span></li>
<li class="alt"><span>        Toast.makeText(</span><span class="keyword">this</span><span>,   </span></li>
<li><span>                </span><span class="string">"选项菜单显示之前onPrepareOptionsMenu方法会被调用，你可以用此方法来根据打当时的情况调整菜单"</span><span>,   </span></li>
<li class="alt"><span>                Toast.LENGTH_LONG).show();   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="comment">// 如果返回false，此方法就把用户点击menu的动作给消费了，onCreateOptionsMenu方法将不会被调用 </span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">true</span><span>;   </span></li>
<li><span>  </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>}  </span></li>
</ol>
</div>
<p>5.效果浏览</p>
<p><img class="alignnone" title="效果图" src="http://www.chendw.cn/wp-content/uploads/auto_save_image/2011/12/012016tFU.png" alt="" width="328" height="483" /></p>
<p>三、自定义样式</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"utf-8"</span><span class="tag">?&gt;</span><span>  </span></span></li>
<li><span class="tag">&lt;</span><span class="tag-name">LinearLayout</span><span> </span><span class="attribute">xmlns:android</span><span>=</span><span class="attribute-value">"http://schemas.android.com/apk/res/android"</span><span>  </span></li>
<li class="alt"><span>    </span><span class="attribute">android:orientation</span><span>=</span><span class="attribute-value">"vertical"</span><span>  </span></li>
<li><span>    </span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">"fill_parent"</span><span>  </span></li>
<li class="alt"><span>    </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">"fill_parent"</span><span>  </span></li>
<li><span>    </span><span class="tag">&gt;</span><span>  </span></li>
<li class="alt"><span class="tag">&lt;</span><span class="tag-name">GridView</span><span>  </span></li>
<li><span>         </span><span class="attribute">android:id</span><span>=</span><span class="attribute-value">"@+id/gridview"</span><span>  </span></li>
<li class="alt"><span>         </span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">"fill_parent"</span><span>  </span></li>
<li><span>         </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">"fill_parent"</span><span>  </span></li>
<li class="alt"><span>         </span><span class="attribute">android:numColumns</span><span>=</span><span class="attribute-value">"4"</span><span>  </span></li>
<li><span>         </span><span class="attribute">android:verticalSpacing</span><span>=</span><span class="attribute-value">"10dip"</span><span>  </span></li>
<li class="alt"><span>         </span><span class="attribute">android:horizontalSpacing</span><span>=</span><span class="attribute-value">"10dip"</span><span>  </span></li>
<li><span>         </span><span class="attribute">android:stretchMode</span><span>=</span><span class="attribute-value">"columnWidth"</span><span>  </span></li>
<li class="alt"><span>         </span><span class="attribute">android:gravity</span><span>=</span><span class="attribute-value">"center"</span><span>  </span></li>
<li><span>         </span><span class="tag">/&gt;</span><span>  </span></li>
<li class="alt"><span>     </span></li>
<li><span class="tag">&lt;/</span><span class="tag-name">LinearLayout</span><span class="tag">&gt;</span><span>  </span></li>
</ol>
</div>
<p>首先自定义菜单界面，我是GridView来包含菜单项，4列3行</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-xml">
<li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span> </span><span class="attribute">version</span><span>=</span><span class="attribute-value">"1.0"</span><span> </span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">"utf-8"</span><span class="tag">?&gt;</span><span>  </span></span></li>
<li><span class="tag">&lt;</span><span class="tag-name">RelativeLayout</span><span> </span><span class="attribute">xmlns:android</span><span>=</span><span class="attribute-value">"http://schemas.android.com/apk/res/android"</span><span>  </span></li>
<li class="alt"><span>    </span><span class="attribute">android:id</span><span>=</span><span class="attribute-value">"@+id/RelativeLayout_Item"</span><span>  </span></li>
<li><span>    </span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">"fill_parent"</span><span> </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">"wrap_content"</span><span>  </span></li>
<li class="alt"><span>    </span><span class="attribute">android:paddingBottom</span><span>=</span><span class="attribute-value">"5dip"</span><span class="tag">&gt;</span><span>  </span></li>
<li><span>    </span><span class="tag">&lt;</span><span class="tag-name">ImageView</span><span> </span><span class="attribute">android:id</span><span>=</span><span class="attribute-value">"@+id/item_image"</span><span>  </span></li>
<li class="alt"><span>        </span><span class="attribute">android:layout_centerHorizontal</span><span>=</span><span class="attribute-value">"true"</span><span> </span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">"wrap_content"</span><span>  </span></li>
<li><span>        </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">"wrap_content"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">ImageView</span><span class="tag">&gt;</span><span>  </span></li>
<li class="alt"><span>    </span><span class="tag">&lt;</span><span class="tag-name">TextView</span><span> </span><span class="attribute">android:layout_below</span><span>=</span><span class="attribute-value">"@id/item_image"</span><span> </span><span class="attribute">android:id</span><span>=</span><span class="attribute-value">"@+id/item_text"</span><span>  </span></li>
<li><span>        </span><span class="attribute">android:layout_centerHorizontal</span><span>=</span><span class="attribute-value">"true"</span><span> </span><span class="attribute">android:layout_width</span><span>=</span><span class="attribute-value">"wrap_content"</span><span>  </span></li>
<li class="alt"><span>        </span><span class="attribute">android:layout_height</span><span>=</span><span class="attribute-value">"wrap_content"</span><span> </span><span class="attribute">android:text</span><span>=</span><span class="attribute-value">"选项"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">TextView</span><span class="tag">&gt;</span><span>  </span></li>
<li><span class="tag">&lt;/</span><span class="tag-name">RelativeLayout</span><span class="tag">&gt;</span><span>  </span></li>
</ol>
</div>
<p>菜单项的现实样式，一个图标和一个文字。<br />
3.定义</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="keyword">private</span><span> </span><span class="keyword">boolean</span><span> isMore = </span><span class="keyword">false</span><span>;</span><span class="comment">// menu菜单翻页控制 </span><span>  </span></span></li>
<li><span>    AlertDialog menuDialog;</span><span class="comment">// menu菜单Dialog </span><span>  </span></li>
<li class="alt"><span>    GridView menuGrid;   </span></li>
<li><span>    View menuView;   </span></li>
<li class="alt"><span>       </span></li>
<li><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_SEARCH = </span><span class="number">0</span><span>;</span><span class="comment">// 搜索 </span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_FILE_MANAGER = </span><span class="number">1</span><span>;</span><span class="comment">// 文件管理 </span><span>  </span></li>
<li><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_DOWN_MANAGER = </span><span class="number">2</span><span>;</span><span class="comment">// 下载管理 </span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_FULLSCREEN = </span><span class="number">3</span><span>;</span><span class="comment">// 全屏 </span><span>  </span></li>
<li><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_MORE = </span><span class="number">11</span><span>;</span><span class="comment">// 菜单 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>       </span></li>
<li class="alt"><span>    </span><span class="comment">/** 菜单图片 **/</span><span>  </span></li>
<li><span>    </span><span class="keyword">int</span><span>[] menu_image_array = { R.drawable.menu_search,   </span></li>
<li class="alt"><span>            R.drawable.menu_filemanager, R.drawable.menu_downmanager,   </span></li>
<li><span>            R.drawable.menu_fullscreen, R.drawable.menu_inputurl,   </span></li>
<li class="alt"><span>            R.drawable.menu_bookmark, R.drawable.menu_bookmark_sync_import,   </span></li>
<li><span>            R.drawable.menu_sharepage, R.drawable.menu_quit,   </span></li>
<li class="alt"><span>            R.drawable.menu_nightmode, R.drawable.menu_refresh,   </span></li>
<li><span>            R.drawable.menu_more };   </span></li>
<li class="alt"><span>    </span><span class="comment">/** 菜单文字 **/</span><span>  </span></li>
<li><span>    String[] menu_name_array = { </span><span class="string">"搜索"</span><span>, </span><span class="string">"文件管理"</span><span>, </span><span class="string">"下载管理"</span><span>, </span><span class="string">"全屏"</span><span>, </span><span class="string">"网址"</span><span>, </span><span class="string">"书签"</span><span>,   </span></li>
<li class="alt"><span>            </span><span class="string">"加入书签"</span><span>, </span><span class="string">"分享页面"</span><span>, </span><span class="string">"退出"</span><span>, </span><span class="string">"夜间模式"</span><span>, </span><span class="string">"刷新"</span><span>, </span><span class="string">"更多"</span><span> };   </span></li>
<li><span>    </span><span class="comment">/** 菜单图片2 **/</span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">int</span><span>[] menu_image_array2 = { R.drawable.menu_auto_landscape,   </span></li>
<li><span>            R.drawable.menu_penselectmodel, R.drawable.menu_page_attr,   </span></li>
<li class="alt"><span>            R.drawable.menu_novel_mode, R.drawable.menu_page_updown,   </span></li>
<li><span>            R.drawable.menu_checkupdate, R.drawable.menu_checknet,   </span></li>
<li class="alt"><span>            R.drawable.menu_refreshtimer, R.drawable.menu_syssettings,   </span></li>
<li><span>            R.drawable.menu_help, R.drawable.menu_about, R.drawable.menu_return };   </span></li>
<li class="alt"><span>    </span><span class="comment">/** 菜单文字2 **/</span><span>  </span></li>
<li><span>    String[] menu_name_array2 = { </span><span class="string">"自动横屏"</span><span>, </span><span class="string">"笔选模式"</span><span>, </span><span class="string">"阅读模式"</span><span>, </span><span class="string">"浏览模式"</span><span>, </span><span class="string">"快捷翻页"</span><span>,   </span></li>
<li class="alt"><span>            </span><span class="string">"检查更新"</span><span>, </span><span class="string">"检查网络"</span><span>, </span><span class="string">"定时刷新"</span><span>, </span><span class="string">"设置"</span><span>, </span><span class="string">"帮助"</span><span>, </span><span class="string">"关于"</span><span>, </span><span class="string">"返回"</span><span> };  </span></li>
</ol>
</div>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="annotation">@Override</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onMenuOpened(</span><span class="keyword">int</span><span> featureId, Menu menu) {   </span></li>
<li class="alt"><span>        </span><span class="keyword">if</span><span> (menuDialog == </span><span class="keyword">null</span><span>) {   </span></li>
<li><span>            menuDialog = </span><span class="keyword">new</span><span> AlertDialog.Builder(</span><span class="keyword">this</span><span>).setView(menuView).show();   </span></li>
<li class="alt"><span>        } </span><span class="keyword">else</span><span> {   </span></li>
<li><span>            menuDialog.show();   </span></li>
<li class="alt"><span>        }   </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">false</span><span>;</span><span class="comment">// 返回为true 则显示系统menu </span><span>  </span></li>
<li class="alt"><span>    }  </span></li>
</ol>
</div>
<p>如果第一次打开则设置视图，否则直接显示menuDialog视图。</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="keyword">private</span><span> SimpleAdapter getMenuAdapter(String[] menuNameArray,   </span></span></li>
<li><span>            </span><span class="keyword">int</span><span>[] imageResourceArray) {   </span></li>
<li class="alt"><span>        ArrayList&lt;HashMap&lt;String, Object&gt;&gt; data = </span><span class="keyword">new</span><span> ArrayList&lt;HashMap&lt;String, Object&gt;&gt;();   </span></li>
<li><span>        </span><span class="keyword">for</span><span> (</span><span class="keyword">int</span><span> i = </span><span class="number">0</span><span>; i &lt; menuNameArray.length; i++) {   </span></li>
<li class="alt"><span>            HashMap&lt;String, Object&gt; map = </span><span class="keyword">new</span><span> HashMap&lt;String, Object&gt;();   </span></li>
<li><span>            map.put(</span><span class="string">"itemImage"</span><span>, imageResourceArray[i]);   </span></li>
<li class="alt"><span>            map.put(</span><span class="string">"itemText"</span><span>, menuNameArray[i]);   </span></li>
<li><span>            data.add(map);   </span></li>
<li class="alt"><span>        }   </span></li>
<li><span>        SimpleAdapter simperAdapter = </span><span class="keyword">new</span><span> SimpleAdapter(</span><span class="keyword">this</span><span>, data,   </span></li>
<li class="alt"><span>                R.layout.item_menu, </span><span class="keyword">new</span><span> String[] { </span><span class="string">"itemImage"</span><span>, </span><span class="string">"itemText"</span><span> },   </span></li>
<li><span>                </span><span class="keyword">new</span><span> </span><span class="keyword">int</span><span>[] { R.id.item_image, R.id.item_text });   </span></li>
<li class="alt"><span>        </span><span class="keyword">return</span><span> simperAdapter;   </span></li>
<li><span>    }  </span></li>
</ol>
</div>
<p>为菜单添加菜单项。</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="annotation">@Override</span><span>  </span></span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onCreateOptionsMenu(Menu menu) {   </span></li>
<li class="alt"><span>        menu.add(</span><span class="string">"menu"</span><span>);</span><span class="comment">// 必须创建一项 </span><span>  </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">super</span><span>.onCreateOptionsMenu(menu);   </span></li>
<li class="alt"><span>    }   </span></li>
<li><span class="annotation">@Override</span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">protected</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) {   </span></li>
<li><span>        </span><span class="comment">// TODO Auto-generated method stub </span><span>  </span></li>
<li class="alt"><span>        </span><span class="keyword">super</span><span>.onCreate(savedInstanceState);   </span></li>
<li><span>           </span></li>
<li class="alt"><span>        setContentView(R.layout.main);   </span></li>
<li><span>           </span></li>
<li class="alt"><span>        menuView = View.inflate(</span><span class="keyword">this</span><span>, R.layout.gridview_menu, </span><span class="keyword">null</span><span>);   </span></li>
<li><span>        </span><span class="comment">// 创建AlertDialog </span><span>  </span></li>
<li class="alt"><span>        menuDialog = </span><span class="keyword">new</span><span> AlertDialog.Builder(</span><span class="keyword">this</span><span>).create();   </span></li>
<li><span>        menuDialog.setView(menuView);   </span></li>
<li class="alt"><span>        menuDialog.setOnKeyListener(</span><span class="keyword">new</span><span> OnKeyListener() {   </span></li>
<li><span>            </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onKey(DialogInterface dialog, </span><span class="keyword">int</span><span> keyCode,   </span></li>
<li class="alt"><span>                    KeyEvent event) {   </span></li>
<li><span>                </span><span class="keyword">if</span><span> (keyCode == KeyEvent.KEYCODE_MENU)</span><span class="comment">// 监听按键 </span><span>  </span></li>
<li class="alt"><span>                    dialog.dismiss();   </span></li>
<li><span>                </span><span class="keyword">return</span><span> </span><span class="keyword">false</span><span>;   </span></li>
<li class="alt"><span>            }   </span></li>
<li><span>        });   </span></li>
<li class="alt"><span>  </span></li>
<li><span>        menuGrid = (GridView) menuView.findViewById(R.id.gridview);   </span></li>
<li class="alt"><span>        menuGrid.setAdapter(getMenuAdapter(menu_name_array, menu_image_array));   </span></li>
<li><span>        </span><span class="comment">/** 监听menu选项 **/</span><span>  </span></li>
<li class="alt"><span>        menuGrid.setOnItemClickListener(</span><span class="keyword">new</span><span> OnItemClickListener() {   </span></li>
<li><span>            </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onItemClick(AdapterView&lt;?&gt; arg0, View arg1, </span><span class="keyword">int</span><span> arg2,   </span></li>
<li class="alt"><span>                    </span><span class="keyword">long</span><span> arg3) {   </span></li>
<li><span>                </span><span class="keyword">switch</span><span> (arg2) {   </span></li>
<li class="alt"><span>                </span><span class="keyword">case</span><span> ITEM_SEARCH:</span><span class="comment">// 搜索 </span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li><span>                </span><span class="keyword">case</span><span> ITEM_FILE_MANAGER:</span><span class="comment">// 文件管理 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>                </span><span class="keyword">case</span><span> ITEM_DOWN_MANAGER:</span><span class="comment">// 下载管理 </span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li><span>                </span><span class="keyword">case</span><span> ITEM_FULLSCREEN:</span><span class="comment">// 全屏 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>                </span><span class="keyword">case</span><span> ITEM_MORE:</span><span class="comment">// 翻页 </span><span>  </span></li>
<li><span>                    </span><span class="keyword">if</span><span> (isMore) {   </span></li>
<li class="alt"><span>                        menuGrid.setAdapter(getMenuAdapter(menu_name_array2,   </span></li>
<li><span>                                menu_image_array2));   </span></li>
<li class="alt"><span>                        isMore = </span><span class="keyword">false</span><span>;   </span></li>
<li><span>                    } </span><span class="keyword">else</span><span> {</span><span class="comment">// 首页 </span><span>  </span></li>
<li class="alt"><span>                        menuGrid.setAdapter(getMenuAdapter(menu_name_array,   </span></li>
<li><span>                                menu_image_array));   </span></li>
<li class="alt"><span>                        isMore = </span><span class="keyword">true</span><span>;   </span></li>
<li><span>                    }   </span></li>
<li class="alt"><span>                    menuGrid.invalidate();</span><span class="comment">// 更新menu </span><span>  </span></li>
<li><span>                    menuGrid.setSelection(ITEM_MORE);   </span></li>
<li class="alt"><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li><span>                }   </span></li>
<li class="alt"><span>                   </span></li>
<li><span>                   </span></li>
<li class="alt"><span>            }   </span></li>
<li><span>        });   </span></li>
<li class="alt"><span>    }  </span></li>
</ol>
</div>
<p>完整代码：</p>
<div class="dp-highlighter">
<div class="bar">
<div class="tools"><strong style="color: #000;">Code</strong>   <a onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">View</a><a onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Copy</a><a onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="file:///D:/Program%20Files/CodeRender(Unmi)/CodeRender.hta#">Print</a></div>
</div>
<ol class="dp-j">
<li class="alt"><span><span class="keyword">package</span><span> com.wjq.menu;   </span></span></li>
<li><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span class="keyword">import</span><span> java.util.ArrayList;   </span></li>
<li class="alt"><span class="keyword">import</span><span> java.util.HashMap;   </span></li>
<li><span>  </span></li>
<li class="alt"><span class="keyword">import</span><span> android.app.Activity;   </span></li>
<li><span class="keyword">import</span><span> android.app.AlertDialog;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.content.DialogInterface;   </span></li>
<li><span class="keyword">import</span><span> android.content.DialogInterface.OnKeyListener;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.os.Bundle;   </span></li>
<li><span class="keyword">import</span><span> android.view.KeyEvent;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.view.Menu;   </span></li>
<li><span class="keyword">import</span><span> android.view.View;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.widget.AdapterView;   </span></li>
<li><span class="keyword">import</span><span> android.widget.GridView;   </span></li>
<li class="alt"><span class="keyword">import</span><span> android.widget.SimpleAdapter;   </span></li>
<li><span class="keyword">import</span><span> android.widget.AdapterView.OnItemClickListener;   </span></li>
<li class="alt"><span>  </span></li>
<li><span class="keyword">public</span><span> </span><span class="keyword">class</span><span> CustomizeMenu </span><span class="keyword">extends</span><span> Activity {   </span></li>
<li class="alt"><span>       </span></li>
<li><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">boolean</span><span> isMore = </span><span class="keyword">false</span><span>;</span><span class="comment">// menu菜单翻页控制 </span><span>  </span></li>
<li class="alt"><span>    AlertDialog menuDialog;</span><span class="comment">// menu菜单Dialog </span><span>  </span></li>
<li><span>    GridView menuGrid;   </span></li>
<li class="alt"><span>    View menuView;   </span></li>
<li><span>       </span></li>
<li class="alt"><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_SEARCH = </span><span class="number">0</span><span>;</span><span class="comment">// 搜索 </span><span>  </span></li>
<li><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_FILE_MANAGER = </span><span class="number">1</span><span>;</span><span class="comment">// 文件管理 </span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_DOWN_MANAGER = </span><span class="number">2</span><span>;</span><span class="comment">// 下载管理 </span><span>  </span></li>
<li><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_FULLSCREEN = </span><span class="number">3</span><span>;</span><span class="comment">// 全屏 </span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">private</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">int</span><span> ITEM_MORE = </span><span class="number">11</span><span>;</span><span class="comment">// 菜单 </span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>       </span></li>
<li><span>    </span><span class="comment">/** 菜单图片 **/</span><span>  </span></li>
<li class="alt"><span>    </span><span class="keyword">int</span><span>[] menu_image_array = { R.drawable.menu_search,   </span></li>
<li><span>            R.drawable.menu_filemanager, R.drawable.menu_downmanager,   </span></li>
<li class="alt"><span>            R.drawable.menu_fullscreen, R.drawable.menu_inputurl,   </span></li>
<li><span>            R.drawable.menu_bookmark, R.drawable.menu_bookmark_sync_import,   </span></li>
<li class="alt"><span>            R.drawable.menu_sharepage, R.drawable.menu_quit,   </span></li>
<li><span>            R.drawable.menu_nightmode, R.drawable.menu_refresh,   </span></li>
<li class="alt"><span>            R.drawable.menu_more };   </span></li>
<li><span>    </span><span class="comment">/** 菜单文字 **/</span><span>  </span></li>
<li class="alt"><span>    String[] menu_name_array = { </span><span class="string">"搜索"</span><span>, </span><span class="string">"文件管理"</span><span>, </span><span class="string">"下载管理"</span><span>, </span><span class="string">"全屏"</span><span>, </span><span class="string">"网址"</span><span>, </span><span class="string">"书签"</span><span>,   </span></li>
<li><span>            </span><span class="string">"加入书签"</span><span>, </span><span class="string">"分享页面"</span><span>, </span><span class="string">"退出"</span><span>, </span><span class="string">"夜间模式"</span><span>, </span><span class="string">"刷新"</span><span>, </span><span class="string">"更多"</span><span> };   </span></li>
<li class="alt"><span>    </span><span class="comment">/** 菜单图片2 **/</span><span>  </span></li>
<li><span>    </span><span class="keyword">int</span><span>[] menu_image_array2 = { R.drawable.menu_auto_landscape,   </span></li>
<li class="alt"><span>            R.drawable.menu_penselectmodel, R.drawable.menu_page_attr,   </span></li>
<li><span>            R.drawable.menu_novel_mode, R.drawable.menu_page_updown,   </span></li>
<li class="alt"><span>            R.drawable.menu_checkupdate, R.drawable.menu_checknet,   </span></li>
<li><span>            R.drawable.menu_refreshtimer, R.drawable.menu_syssettings,   </span></li>
<li class="alt"><span>            R.drawable.menu_help, R.drawable.menu_about, R.drawable.menu_return };   </span></li>
<li><span>    </span><span class="comment">/** 菜单文字2 **/</span><span>  </span></li>
<li class="alt"><span>    String[] menu_name_array2 = { </span><span class="string">"自动横屏"</span><span>, </span><span class="string">"笔选模式"</span><span>, </span><span class="string">"阅读模式"</span><span>, </span><span class="string">"浏览模式"</span><span>, </span><span class="string">"快捷翻页"</span><span>,   </span></li>
<li><span>            </span><span class="string">"检查更新"</span><span>, </span><span class="string">"检查网络"</span><span>, </span><span class="string">"定时刷新"</span><span>, </span><span class="string">"设置"</span><span>, </span><span class="string">"帮助"</span><span>, </span><span class="string">"关于"</span><span>, </span><span class="string">"返回"</span><span> };   </span></li>
<li class="alt"><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li><span>    </span><span class="keyword">protected</span><span> </span><span class="keyword">void</span><span> onCreate(Bundle savedInstanceState) {   </span></li>
<li class="alt"><span>        </span><span class="comment">// TODO Auto-generated method stub </span><span>  </span></li>
<li><span>        </span><span class="keyword">super</span><span>.onCreate(savedInstanceState);   </span></li>
<li class="alt"><span>           </span></li>
<li><span>        setContentView(R.layout.main);   </span></li>
<li class="alt"><span>           </span></li>
<li><span>        menuView = View.inflate(</span><span class="keyword">this</span><span>, R.layout.gridview_menu, </span><span class="keyword">null</span><span>);   </span></li>
<li class="alt"><span>        </span><span class="comment">// 创建AlertDialog </span><span>  </span></li>
<li><span>        menuDialog = </span><span class="keyword">new</span><span> AlertDialog.Builder(</span><span class="keyword">this</span><span>).create();   </span></li>
<li class="alt"><span>        menuDialog.setView(menuView);   </span></li>
<li><span>        menuDialog.setOnKeyListener(</span><span class="keyword">new</span><span> OnKeyListener() {   </span></li>
<li class="alt"><span>            </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onKey(DialogInterface dialog, </span><span class="keyword">int</span><span> keyCode,   </span></li>
<li><span>                    KeyEvent event) {   </span></li>
<li class="alt"><span>                </span><span class="keyword">if</span><span> (keyCode == KeyEvent.KEYCODE_MENU)</span><span class="comment">// 监听按键 </span><span>  </span></li>
<li><span>                    dialog.dismiss();   </span></li>
<li class="alt"><span>                </span><span class="keyword">return</span><span> </span><span class="keyword">false</span><span>;   </span></li>
<li><span>            }   </span></li>
<li class="alt"><span>        });   </span></li>
<li><span>  </span></li>
<li class="alt"><span>        menuGrid = (GridView) menuView.findViewById(R.id.gridview);   </span></li>
<li><span>        menuGrid.setAdapter(getMenuAdapter(menu_name_array, menu_image_array));   </span></li>
<li class="alt"><span>        </span><span class="comment">/** 监听menu选项 **/</span><span>  </span></li>
<li><span>        menuGrid.setOnItemClickListener(</span><span class="keyword">new</span><span> OnItemClickListener() {   </span></li>
<li class="alt"><span>            </span><span class="keyword">public</span><span> </span><span class="keyword">void</span><span> onItemClick(AdapterView&lt;?&gt; arg0, View arg1, </span><span class="keyword">int</span><span> arg2,   </span></li>
<li><span>                    </span><span class="keyword">long</span><span> arg3) {   </span></li>
<li class="alt"><span>                </span><span class="keyword">switch</span><span> (arg2) {   </span></li>
<li><span>                </span><span class="keyword">case</span><span> ITEM_SEARCH:</span><span class="comment">// 搜索 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>                </span><span class="keyword">case</span><span> ITEM_FILE_MANAGER:</span><span class="comment">// 文件管理 </span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li><span>                </span><span class="keyword">case</span><span> ITEM_DOWN_MANAGER:</span><span class="comment">// 下载管理 </span><span>  </span></li>
<li class="alt"><span>  </span></li>
<li><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>                </span><span class="keyword">case</span><span> ITEM_FULLSCREEN:</span><span class="comment">// 全屏 </span><span>  </span></li>
<li><span>  </span></li>
<li class="alt"><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li><span>                </span><span class="keyword">case</span><span> ITEM_MORE:</span><span class="comment">// 翻页 </span><span>  </span></li>
<li class="alt"><span>                    </span><span class="keyword">if</span><span> (isMore) {   </span></li>
<li><span>                        menuGrid.setAdapter(getMenuAdapter(menu_name_array2,   </span></li>
<li class="alt"><span>                                menu_image_array2));   </span></li>
<li><span>                        isMore = </span><span class="keyword">false</span><span>;   </span></li>
<li class="alt"><span>                    } </span><span class="keyword">else</span><span> {</span><span class="comment">// 首页 </span><span>  </span></li>
<li><span>                        menuGrid.setAdapter(getMenuAdapter(menu_name_array,   </span></li>
<li class="alt"><span>                                menu_image_array));   </span></li>
<li><span>                        isMore = </span><span class="keyword">true</span><span>;   </span></li>
<li class="alt"><span>                    }   </span></li>
<li><span>                    menuGrid.invalidate();</span><span class="comment">// 更新menu </span><span>  </span></li>
<li class="alt"><span>                    menuGrid.setSelection(ITEM_MORE);   </span></li>
<li><span>                    </span><span class="keyword">break</span><span>;   </span></li>
<li class="alt"><span>                }   </span></li>
<li><span>                   </span></li>
<li class="alt"><span>                   </span></li>
<li><span>            }   </span></li>
<li class="alt"><span>        });   </span></li>
<li><span>    }   </span></li>
<li class="alt"><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onCreateOptionsMenu(Menu menu) {   </span></li>
<li class="alt"><span>        menu.add(</span><span class="string">"menu"</span><span>);</span><span class="comment">// 必须创建一项 </span><span>  </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">super</span><span>.onCreateOptionsMenu(menu);   </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>       </span></li>
<li class="alt"><span>    </span><span class="keyword">private</span><span> SimpleAdapter getMenuAdapter(String[] menuNameArray,   </span></li>
<li><span>            </span><span class="keyword">int</span><span>[] imageResourceArray) {   </span></li>
<li class="alt"><span>        ArrayList&lt;HashMap&lt;String, Object&gt;&gt; data = </span><span class="keyword">new</span><span> ArrayList&lt;HashMap&lt;String, Object&gt;&gt;();   </span></li>
<li><span>        </span><span class="keyword">for</span><span> (</span><span class="keyword">int</span><span> i = </span><span class="number">0</span><span>; i &lt; menuNameArray.length; i++) {   </span></li>
<li class="alt"><span>            HashMap&lt;String, Object&gt; map = </span><span class="keyword">new</span><span> HashMap&lt;String, Object&gt;();   </span></li>
<li><span>            map.put(</span><span class="string">"itemImage"</span><span>, imageResourceArray[i]);   </span></li>
<li class="alt"><span>            map.put(</span><span class="string">"itemText"</span><span>, menuNameArray[i]);   </span></li>
<li><span>            data.add(map);   </span></li>
<li class="alt"><span>        }   </span></li>
<li><span>        SimpleAdapter simperAdapter = </span><span class="keyword">new</span><span> SimpleAdapter(</span><span class="keyword">this</span><span>, data,   </span></li>
<li class="alt"><span>                R.layout.item_menu, </span><span class="keyword">new</span><span> String[] { </span><span class="string">"itemImage"</span><span>, </span><span class="string">"itemText"</span><span> },   </span></li>
<li><span>                </span><span class="keyword">new</span><span> </span><span class="keyword">int</span><span>[] { R.id.item_image, R.id.item_text });   </span></li>
<li class="alt"><span>        </span><span class="keyword">return</span><span> simperAdapter;   </span></li>
<li><span>    }   </span></li>
<li class="alt"><span>    </span><span class="annotation">@Override</span><span>  </span></li>
<li><span>    </span><span class="keyword">public</span><span> </span><span class="keyword">boolean</span><span> onMenuOpened(</span><span class="keyword">int</span><span> featureId, Menu menu) {   </span></li>
<li class="alt"><span>        </span><span class="keyword">if</span><span> (menuDialog == </span><span class="keyword">null</span><span>) {   </span></li>
<li><span>            menuDialog = </span><span class="keyword">new</span><span> AlertDialog.Builder(</span><span class="keyword">this</span><span>).setView(menuView).show();   </span></li>
<li class="alt"><span>        } </span><span class="keyword">else</span><span> {   </span></li>
<li><span>            menuDialog.show();   </span></li>
<li class="alt"><span>        }   </span></li>
<li><span>        </span><span class="keyword">return</span><span> </span><span class="keyword">false</span><span>;</span><span class="comment">// 返回为true 则显示系统menu </span><span>  </span></li>
<li class="alt"><span>    }   </span></li>
<li><span>       </span></li>
<li class="alt"><span>}  </span></li>
</ol>
</div>
<div>原代码下载<a title="源代码" href="http://115.com/file/bhk8gqgo#">点击这里</a><br />
效果浏览</div>
<div><img class="alignleft" title="效果图" src="http://www.chendw.cn/wp-content/uploads/auto_save_image/2011/12/0120171ER.png" alt="" width="329" height="486" /></div>
<div>
<img class="alignright" title="效果图" src="http://www.chendw.cn/wp-content/uploads/auto_save_image/2011/12/012017GwJ.png" alt="" width="324" height="484" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/programming/588.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux下Nginx+tomcat整合的安装与配置[转]</title>
		<link>http://www.chendw.cn/document/583.html</link>
		<comments>http://www.chendw.cn/document/583.html#comments</comments>
		<pubDate>Tue, 20 Dec 2011 01:00:44 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[文档教程]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=583</guid>
		<description><![CDATA[目的：搭建Nginx与tomcat整合，用Nginx代替apache

一、安装Tomcat和JDK

二、安装Nginx

三、其他]]></description>
			<content:encoded><![CDATA[<p><strong>目的：搭建Nginx与tomcat整合，用Nginx代替apache</strong></p>
<p><strong>一、安装Tomcat和JDK</strong></p>
<p><strong>二、安装Nginx</strong></p>
<p><strong>三、其他</strong></p>
<p><span style="color: #ff0000;"><strong>详细教程请移步：<a href="http://www.jsprun.net/thread-16889-1-1.html"><span style="color: #ff0000;">http://www.jsprun.net/thread-16889-1-1.html</span></a></strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/document/583.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ORACLE数据库归档日志常用命令</title>
		<link>http://www.chendw.cn/original/564.html</link>
		<comments>http://www.chendw.cn/original/564.html#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:41:16 +0000</pubDate>
		<dc:creator>随风散忆</dc:creator>
				<category><![CDATA[本站原创]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[问题解决]]></category>

		<guid isPermaLink="false">http://www.chendw.cn/?p=564</guid>
		<description><![CDATA[--连接恢复管理器

C:\Documents and Settings\mengzhaoliang>rman target/

--归档日志列表
RMAN> list archivelog all;

--删除物理文件不存在的归档日志
RMAN> delete expired archivelog all;
]]></description>
			<content:encoded><![CDATA[<p><span style="color: #000000;">--连接恢复管理器</span></p>
<p><span style="color: #000000;">C:\Documents and Settings\mengzhaoliang&gt;rman target/</span></p>
<p><span style="color: #000000;">--归档日志列表</span><br />
<span style="color: #000000;">RMAN&gt; list archivelog all;</span></p>
<p><span style="color: #000000;">--删除物理文件不存在的归档日志</span><br />
<span style="color: #000000;">RMAN&gt; delete expired archivelog all;</span></p>
<p><span style="color: #000000;">--删除7天前的归档日志</span><br />
<span style="color: #000000;">RMAN&gt; DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.chendw.cn/original/564.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

