- 浏览: 42376 次
- 性别:
- 来自: 北京
文章列表
我使用的是eclipse作为开发工具,所以就以eclipse作为开发环境做android开发的配置
http://developer.android.com/sdk/installing/index.html
在这个官网上,我们可依找到android sdk tools的下载路径,下载并安装。
安装完成后,我们需要安装eclipse的adt插件,这个插件可以帮助我们很好的很方便的使用android的模拟器等插件,安装方法是在eclipse的help中,选择install new software,然后添加新的站点
https://dl-ssl.google.com ...
这个filter是struts中最重要的filter,主要完成以下四个功能:
1、处理action
2、清理ActionContext
3、处理静态资源
4、触发指定请求生命周期内的拦截器链
这个filter是武断性的,也就是说它通过ActonMapper来寻找特定的action,如果找到了,那么其他剩下的filter就不会再被引用,转而去处理action,这意味着其他过滤器需要放置到这个filter前面,否则将不会被引用到。
public void setDevMode(String mode) {
devMode = "true" ...
在Android 应用程序之间数据共享—-ContentResolver中,已经说明了Android是如何实现应用程序之间数据共享的,并详细解析了如何获取其他应用程序共享的数据。ContentProviders存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。那么如何将应用程序的数据暴露出去?
通过以前文章的学习,知道ContentResolver是通过ContentProvider来获取其他与应用程序共享的数据,那么ContentResolver与ContentProvider的接口应该差不多的。
其中ContentProvider负责
组织应 ...
Android是如何实现应用程序之间数据共享的?一个应用程序可以将自己的数据完全暴露出去,外界更本看不到,也不用看到这个应用程序暴露的数据是如何存储的,或者是使用数据库还是使用文件,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和这个程序里的数据打交道,例如:添加(insert)、删除(delete)、查询(query)、修改(update),当然需要一定的权限才可以。
如何将应用程序的数据暴露出去? Android提供了ContentProvider,一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Conte ...
在Android中,对于数据的存贮,有几种方式,有文件方式,有文件式数据库方式,Android自带了一个SQLite数据库,做嵌入开发的人对这个跨平台的本地文件数据库一定不会陌生,在Android对于数据的访问,提出了新的方式,ContentProvider方式,类似于MS的ContentProvider方式的,OLEDB,及ODBC统一的数据方式。我们首先来看看SQLite在 Android中的使用,在Android中有最简单的使用方式,就是利Context对象的openorCreateDatabase我们来看看一段代码:package test.DB;
import android.app ...
内存溢出。
如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下使用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)
那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:Per ...
Event Forwarding in Java
我们可以使用composer
public class MyComposer extends GenericForwardComposer{
private static final long serialVersionUID = -6441175297617827574L;
public void onClick$hi(){
openDialog();
}
public void onClick$bye(){
openDialog();
}
public void openDialog();{
...
时间的触发源有两种,常见的是通过组件来触发,其实应用本身也可以触发事件
触发时间的方式有三种:post、send、echo
Post an Event
Posting是触发时间最常见的一种方式,同过posting,触发的事件被放到系统时间的最末端,储存在事件序列里的事件会按照先进先出的顺序一个一个被处理,每个desktop都有一个事件序列。
Events.postEvent("onClick",button,null);
这行代码模拟了button被点击的时间,最后一个参数可以指定优先级,默认是0,数字越大,最先被处理。
Send an Event
...
event是用来抽象事件的,在这里我们将讨论怎么去操纵event,比如说listening,posting,forwarding
Event Listening
有两种方式可以监听事件:Event Hanler and Event Listener。
Listen by use of an Event Handler
我们可以在zk page中将handler指定为一个属性或者在scr中写一个component class
<button onClick="alert('hello world')"></button>
重要的内 ...
Define Macro Component
任意的ZUML page 都可以作为一个macro component
我们在web-inf下新建macro,并新建一个username.zul
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<hlayout>
username: <textbox/>
</hlayout>
</zk>
decla ...
richlet是一段java小程序,它可以形成UI,也可以为用户的请求服务。
当用户的url请求到来时,zk会根据web.xml中的url-pattern来检查这是要请求一个zul或者是richlet。当用户的请求是一个zul的时候,就和我们前面所讲的一样。如果用户的请求是一个richlet,那么zk loader 会将处理任务交给richlet,这时,ui的形成就全部由richlet决定。
到底是用richlet还是zuml page来形成用户界面完全取决于你的个人喜好,我们不必考虑是用zuml page的性能问题,因为zuml page的形成过程是经过优化的。
用richl ...
默认情况下,zk都是根据我们在zuml文档中的定义来构造组件,然而,我们也可以根据需要来加载需要的组件。比如说,我们可以将一个zuml文档分割成几块,然后根据需要来加载指定的模块。这种功能提高了服务器端和客户端的性能,为了实现这个功能,zk提供了一个基本的evaluation,叫做fulfill来简化这个功能的实现。
Load-on-Demand with the fulfill attribute
<combobox fulfill="onOpen">
<comboitem label="hello"></co ...
默认的情况下,zk会将每一个元素实例化,如果你想生成组件的集合,那么就要使用foreach
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="new page title" border="normal">
<listbox>
<listitem label="${each } " forEa ...
If and Unless
我们可以通过if和Unless来控制widget的显示与否
<button if="${param.readOnly=='true' }"></button>
<button unless="${param.readOnly=='true' }"></button>
Switch and Case
类似于java中的Switch、Case
<zk switch="${fruit }">
<zk case=& ...
ZUML允许在页面中嵌入script脚本,有两种类型的脚本:server端的和client端的,我们先讨论服务器端的脚本。
在ZK提供的文档里,说明了server-side的脚本有两种嵌入方式:the zscript element、the event handler。前者当页面加载完成后执 ...