当前位置:  编程技术>移动开发
本页文章导读:
    ▪页面小东东记要        页面小东东记录     1:利用json(json格式的配置文件)和jquery 实现根据配置的页面展示         $.get("js/ymcfg.json", function (data) {             parseinit(JSON.parse(data));         },"json");     .........
    ▪ onInterceptTouchEvent跟onTouchEvent()        onInterceptTouchEvent和onTouchEvent() onInterceptTouchEvent用于改变事件的传递方向。决定传递方向的是返回值,返回为false时事件会传递给子控件,返回值为true时事件会传递给当前控件的onTouchEvent(),这.........
    ▪ 高速查找(a-z)       快速查找(a-z) 见附件吧   工程里代码 public void onTouchingLetterChanged(String s) {  // TODO Auto-generated method stub  if (alphaIndexer(s) >= 0) {   int position = alphaIndexer(s);   personList.setSelection(position);.........

[1]页面小东东记要
    来源: 互联网  发布时间: 2014-02-18
页面小东东记录

    1:利用json(json格式的配置文件)和jquery 实现根据配置的页面展示
        $.get("js/ymcfg.json", function (data) {
            parseinit(JSON.parse(data));
        },"json");
       
        var parseinit = function (jsonObj) {
            //可以将json对象进行遍历展现到页面
        }
   
   
    js的一些小东东综合:
   
         (1):js中数组的定义:var arr = [];
         
         (2):js中对象的定义:var goodArrmap = new Object();//Object类型在js中是个天然的map 用起来很方便
   
         (3):js中json对象的定义:var json = {};
         
         (4):js中将json对象转换为json字符串:JSON.stringify(json);
         
         (5) js数组中移除某一个元素可以使用下面的function:
               Array.prototype.baoremove = function(dx)
                 {
                    if(isNaN(dx)||dx>this.length){return false;}
                    this.splice(dx,1);
                 }
                如 arr.baoremove(2);
           
   附:ymcfg.json 的配置文件为:
    [ 
    {
        "id" : "searchType",
        "value" : "文档类型",
        "ifMultiSel" : "false",
        "Operator" : "in",
        "DataType" : "string",
        "typeItems" : [{
                "id" : "searchTypeNoLimit",
                "value" : "不限",
                "able" : "#resType,#proType"
            }, {
                "id" : "resReport",
                "value" : "word",
                "able" : "#resType;#proType",
                "disable" : "#resType(null);#proType(null)"
            }, {
                "id" : "appTool",
                "value" : "excle",
                "able" : "#resType(#resTypeNoLimit,#online_rpt);#proType(#proTypeNoLimit,#colligateBusi,#net)",
                "disable" : "#resType(#kpi_normal,#analysis,#cub,#cst,#report,#res_default,#sql,#view,#res_link,#pms_price,#pms_active,#tbl,#repository);#protype(#terminal,#famlymarket,#datamarket)"
            }
        ]
    },
    {
        "id" : "resType",
        "value" : "子类型",
        "ifMultiSel" : "true",
        "Operator" : "in",
        "DataType" : "string",
        "typeItems" : [{
                "id" : "resTypeNoLimit",
                "value" : "不限",
                "able" : "#proType"
            }, {
                "id" : "kpi_normal",
                "value" : "PPT",
                "able" : "#proType",
                "disable" : "#proType(null)"
            }
           
        ]
    },
    ]

 

附件中是一个实现页面动态配置的小例子。

 

 

1 楼 zhuzl5210798 2012-12-07  
不错!值得参考。

    
[2] onInterceptTouchEvent跟onTouchEvent()
    来源: 互联网  发布时间: 2014-02-18
onInterceptTouchEvent和onTouchEvent()

onInterceptTouchEvent用于改变事件的传递方向。决定传递方向的是返回值,返回为false时事件会传递给子控件,返回值为true时事件会传递给当前控件的onTouchEvent(),这就是所谓的Intercept(拦截)。

[tisa ps:正确的使用方法是,在此方法内仅判断事件是否需要拦截,然后返回。即便需要拦截也应该直接返回true,然后由onTouchEvent方法进行处理。]

    onTouchEvent用于处理事件,返回值决定当前控件是否消费(consume)了这个事件。尤其对于ACTION_DOWN事件,返回true,表示我想要处理后续事件;返回false,表示不关心此事件,并返回由父类进行处理。

    可能你要问是否消费了又区别吗,反正我已经针对事件编写了处理代码?答案是有区别!比如ACTION_MOVE或者ACTION_UP发生的前提是一定曾经发生了ACTION_DOWN,如果你没有消费ACTION_DOWN,那么系统会认为ACTION_DOWN没有发生过,所以ACTION_MOVE或者ACTION_UP就不能被捕获。

在没有重写onInterceptTouchEvent()和onTouchEvent()的情况下(他们的返回值都是false), 对上面这个布局,MotionEvent事件的传递顺序如下:

当某个控件的onInterceptTouchEvent()返回值为true时,就会发生截断,事件被传到当前控件的onTouchEvent()。如我们将LayoutView2的onInterceptTouchEvent()返回值为true,则传递流程变成:

 如果我们同时将LayoutView2的onInterceptTouchEvent()和onTouchEvent()设置成true,那么LayoutView2将消费被传递的事件,同时后续事件(如跟着ACTION_DOWN的ACTION_MOVE或者ACTION_UP)会直接传给LayoutView2的onTouchEvent(),不传给其他任何控件的任何函数。同时传递给子空间一个ACTION_CANCEL事件。传递流程变成(图中没有画出ACTION_CANCEL事件):

         

[tisa ps:总体来看, onInterceptTouchEvent是自rootview向下传递, onTouchEvent正好相反。]

 


    
[3] 高速查找(a-z)
    来源: 互联网  发布时间: 2014-02-18
快速查找(a-z)

见附件吧

 

工程里代码

public void onTouchingLetterChanged(String s) {
  // TODO Auto-generated method stub
  if (alphaIndexer(s) >= 0) {
   int position = alphaIndexer(s);
   personList.setSelection(position);
   overlay.setText(s);
   overlay.setVisibility(View.VISIBLE);
   handler.removeCallbacks(overlayThread);
   handler.postDelayed(overlayThread, 1500);
  }
 }

 if (alphaIndexer(s) >= 0) {
工程里是>,需要改成>=。


    
最新技术文章:
▪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