当前位置:  编程技术>移动开发
本页文章导读:
    ▪mac上筹建openfire服务器        mac上搭建openfire服务器 一、下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfire 3.8.1,下载后的文件:openfire_3_8_1.dmg 2.点击安装,并执行默认操作.........
    ▪ form上传跟下载        form上传和下载 如何把数据上传到EBS的forms的数据块中   创建一个临时表: XXX_TEMP_FILES 建表语句是: CREATE TABLE XXX_TEMP_FILES (FILE_ID NUMBER,SEQ NUMBER,TEXT VARCHAR2(2000),CREATION_DATE DATE) 创建这个表的.........
    ▪ listView懒加载解决快速拖动卡屏有关问题       listView懒加载解决快速拖动卡屏问题 快速拖动  上下拖动很卡的原因 listView中有大量的图片,每张图片在生存时候会花200毫秒, 解决:利用listView的懒加载   :当拖动时候不去加载ListView.........

[1]mac上筹建openfire服务器
    来源: 互联网  发布时间: 2014-02-18
mac上搭建openfire服务器

一、下载并安装openfire

1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版

比如:Openfire 3.8.1,下载后的文件:openfire_3_8_1.dmg

2.点击安装,并执行默认操作

3.启动openfire服务

在系统偏好设置的其他里,点击openfire偏好

启动后,点击Open Admin Console按钮,自动在浏览器中打开本地web配置页面http://localhost:9090/setup/index.jsp

二、配置openfire服务器

1.设置语言,选中文

2.主机设置

设置主机的访问ip地址

注意:域不能是机器名,否则会如下错误:

HTTP ERROR: 500 INTERNAL_SERVER_ERROR

本地的域,要设置为127.0.0.1

3.数据库设置

如果要设置外部数据库(推荐,比如:MySQL),选择标准数据库连接

4.设置数据库连接

(1)数据库驱动选择:MySQL,前提是已安装MySQL(具体的安装方法可以参考上一篇:mac上安装MySQL)

(2)JDBC驱动,默认不变

com.mysql.jdbc.Driver

(3)数据库URL:

形式如下:

jdbc:mysql://你的主机名:端口号/数据库名称

这里设置为

jdbc:mysql://localhost:3306/openfire

其中主机名[host-name]改为localhost,

其中数据库名称[database-name]改为openfire

解决数据库字符编码问题,可以在后面加

?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

最终的url形式是

jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

注意:前提是已存在一个名为openfire的数据库,否则会报如下错误,连接配置不成功

The Openfire database schema does not appear to be installed. Follow the installation guide to fix this error. 

前期的MySQL数据库准备工作如下:

<1>设置/usr/local/openfire文件夹的访问权限为可读写

方法1:在finder中前往文件夹/usr/local/,右键openfire文件夹,显示简介

点击如图右下角中的锁图标解锁,并设置权限为:可以读写

方法2:打开终端,输入如下命令

sudo chmod 777 /usr/local/openfire

其中777表示授权可读写权限,000表示无访问权限

<2>在终端中,登陆MySQL

mysql -u root -p

然后输入数据库的root密码

<3>创建数据库openfire

create database openfire;

<4>导入openfire资源文件夹 resources/database下的数据表

use openfire;
source /usr/local/openfire/resources/database/openfire_mysql.sql

 在终端出现一排导入过程

 <5>刷新权限

flush privileges;

<6>退出MySQL

exit

(4)用户名和密码

这里的用户名密码,是访问MySQL数据库时使用的帐号:root,和安装MySQL设置的root密码

5.特性设置

如果不打算使用LDAP,则保持默认设置

 6.设置openfire服务器管理员的帐号和密码

可以随便填写一个管理员邮箱,输入要设置的密码

完成注册

 

7.登陆管理控制台

 (如果可以往数据库里插入用户但是在用户摘要却没有数据,这是因为openfire的数据库驱动包太旧了,而安装的数据库太新了,把openfire里的驱动包换成新的就行了,路径:/usr/local/openfire/lib)

默认的管理员帐号是“admin”,默认管理员密码“admin”,如果上面设置了新密码,则管理员密码是新密码

 

 

如果想去掉默认的admin帐号,并自定义,需要如下操作

 

(1)在终端中,登陆具体的数据库(openfire)

 

mysql -u root -p openfire

 

然后输入数据库的root密码

 

(2)删除表“ofUser”中的admin帐户

 

delete from ofUser where username='admin';

 

(3)创建自定义管理员(用户名:xiaodao,密码:123)

 

INSERT INTO ofUser (username, plainPassword, encryptedPassword, name, email, creationDate, modificationDate) VALUES ('xiaodao','123','123','Administrator','xiaodao@sunyard.com','0','0');

  注意:如果重设了用户名,必须重启openfire服务器

8.后台控制界面

 

三、卸载openfire

1.停止服务

在系统偏好设置的其他里,打开openfire偏好设置

点击Stop Openfire按钮,停止服务

2.删除文件

打开终端,输入以下命令

sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
sudo rm -rf /usr/local/openfire
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist

    
[2] form上传跟下载
    来源: 互联网  发布时间: 2014-02-18
form上传和下载

如何把数据上传到EBS的forms的数据块中  

创建一个临时表: XXX_TEMP_FILES

建表语句是:

CREATE TABLE XXX_TEMP_FILES (
FILE_ID NUMBER,
SEQ NUMBER,
TEXT VARCHAR2(2000),
CREATION_DATE DATE
)

创建这个表的目的就是要把数据从FND_LOBS这个表的file_data这个字段的数据,通过程序,因为这个表的这个数据是lobs类型的,所以整个文件都放在这个字段里,我们利用这个临时表,把数据文件拆成一行一个纪录.然后每行在根据分个符查分.

2. 创建上传包: XXX_FILE_IO

XXX_FILE_IO 包含三个子程序:
INS_TEMP_FILES:从fnd_lobs 表中取上传的数据,把它按行来拆分,并插入到: XXX_TEMP_FILES 表中
SEL_TEMP_FILES:从XXX_TEMP_FILES 中把数据去出
DEL_TEMP_FILES:数据已经上传到Form的界面中,需要删除文件.

主要语句就是:

PROCEDURE INS_TEMP_FILES(p_file_id IN NUMBER) IS
w_integer INTEGER;
w_blob BLOB;

w_raw RAW(10);
w_buff VARCHAR2(30000);
w_line VARCHAR2(30000);
w_len INTEGER;
eofsw BOOLEAN := FALSE;
offset INTEGER;
w_b_len NUMBER := 0;
w_num NUMBER;
w_seq NUMBER := 0;

BEGIN
SELECT file_data INTO w_blob FROM fnd_lobs WHERE file_id = p_file_id;

offset := 1;
LOOP
EXIT WHEN eofsw;
w_seq := w_seq + 1;
w_raw := utl_raw.cast_to_raw(chr(10));
w_num := dbms_lob.instr(w_blob, w_raw, offset, 1);
w_len := w_num - w_b_len;
w_b_len := w_num;

IF w_num = 0
THEN
w_len := 20000;
eofsw := TRUE;
END IF;

BEGIN
DBMS_LOB.READ(w_blob, w_len, offset, w_buff);
EXCEPTION
WHEN no_data_found THEN
EXIT;
WHEN OTHERS THEN
RAISE;
END;

w_line := utl_raw.cast_to_varchar2(w_buff);

SELECT REPLACE(w_line, chr(10), NULL) INTO w_line FROM dual;
SELECT REPLACE(w_line, chr(13), NULL) INTO w_line FROM dual;

INSERT INTO XXX_TEMP_FILES
(FILE_ID, SEQ, TEXT, CREATION_DATE)
VALUES
(p_file_id, w_seq, w_line, SYSDATE);

offset := offset + w_len;
END LOOP;

END;
3. 在Form文件中的Program Unit中健一个包.XXX_UPLOAD
这个文件最好做成PLL,和其他客制化的有用的程序一起打包,上传到form这是一个系统比较有用的通用的程序.
主要是利用FND_GFM这个通用上传的工具,把文件传到,FND_LOBS中去,然后第二步建好的的包,进行数据拆分:

p_file_id := NULL;
access_id := FND_GFM.AUTHORIZE(NULL);

FND_PROFILE.GET('APPS_WEB_AGENT', l_server_url);
l_url := rtrim(l_server_url, '/') ||
'/fnd_file_upload.displayGFMform?access_id=' ||
to_char(access_id) ||
chr(38) ||
'l_server_url=' ||
l_server_url;

if (l_url is NULL) then
raise form_trigger_failure;
return NULL;
end if;

FND_UTILITIES.OPEN_URL(/blog_article/l_url/index.html);

FND_MESSAGE.SET_NAME('FND', 'ATCHMT-FILE-UPLOAD-COMPLETE');

button_choice := FND_MESSAGE.QUESTION(
button1 => 'YES',
button2 => null,
button3 => 'NO',
default_btn => 1,
cancel_btn => 3,
icon => 'question'
);

if button_choice = 1 then


p_file_id := FND_GFM.GET_FILE_ID(access_id);

XXX_FILE_IO.INS_TEMP_FILES(p_file_id);
-- pcm_dbms_lob.UPOPEN(p_file_id);

else

return NULL;

end if;


return p_file_id;

1. 在Form文件中的Program Unit中健一个程序如: UPLOAD_XXX_XXX(X根据实际需要转换)

UPLOAD_XXX_XXX 这个文件的需要在实际的应用中作改动,根绝实际的要导入的字段修改程序.主要功能就是从XXX_TEMP_FILES把数据读出,然后根据分割符来,把每个数据对应到form的域中.


    
[3] listView懒加载解决快速拖动卡屏有关问题
    来源: 互联网  发布时间: 2014-02-18
listView懒加载解决快速拖动卡屏问题
快速拖动  上下拖动很卡的原因 listView中有大量的图片,每张图片在生存时候会花200毫秒,

解决:利用listView的懒加载   :当拖动时候不去加载ListView中的条目,当用户停止的时候才
真正去加载这个条目
判断ListView的状态,如果ListView是处于滚动状态,返回一个假的View对象,gieView()执行很快
只有当listView处于静止状态的时候,才去真正去更新里面显示的内容
5.listview的懒加载
   判断listview的状态,如果listview是处于滚动状态.返回一个假的view对象.
   只有当listview处于静止状态的时候 ,才去真正的更新里面所显示的内容.

    1.在activity创建的时候,获取到所有的缩略图...

   2.在adapter的getview的方法里面判断 当前listview是否处于滚动状态.
   滚动状态可以通过 listview的setonscroollistener的方式 处理
  onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
        case OnScrollListener.SCROLL_STATE_IDLE:
            滚动= false;
            break;
        case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
            滚动= true;    
            break;
        case OnScrollListener.SCROLL_STATE_FLING:
            滚动= true;
            break;

如果是滚动状态 就只返回,缩略图.
并且把真实图片的id存储起来.并且可以储存当前imageview的引用.

3.当滚动状态变成静止的时候 再去真正的加载每个真实的图片.
在case OnScrollListener.SCROLL_STATE_IDLE:
//获取第一个listview可见的条目的位置
  int first = listview.getFirstVisiblePosition();
// 获取listview里面显示的条目的个数.
  int count = view.getChildCount();
通过for循环 更新所有的图片
for (int i=0; i<count; i++) {
         拿到图片的id,和imageview,更新里面的内容.   

            }

这种方法,可以解决掉拖动卡顿的现象.

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3