Android SQLite PhoneGap sencha touch 中调用Java原生程序,数据加载到页面,并实现滑动分页

    1.在phoneGap中将原生程序对象传递到html中,关键源码如下:

           super.loadUrl("file:///android_asset/www/js/hotel.html",3000);
            this.appView.addJavascriptInterface(new MytabCursor(new MyDatabaseHelper(getApplicationContext()).getReadableDatabase()), "dataofsqlite") ;//前一个参数不可用实例对象。

 2.在sencha souch中调用对象中的方法,方法返回值为Json字符串,将其存入Sencha touch Store中,关键源码如下:

     var bookStore=Ext.create('Ext.data.Store',{
            model:'Hotel',
            autoLoad:false,
            pageSize:5,
            data:dataofsqlite.findJson(),//此为调用的Java原生程序方法,返回值为Json字符串
            proxy: {
                type: 'memory',//代理设置为memory
                 
                reader: {
                    type: 'json',
                    rootProperty: 'hotels'
                }
            }
            
        });   

3.滑动分页实现,关键源码如下:

     var List=Ext.create('Ext.List',{
            store:bookStore,
            itemTpl:bookTemplate,
            items:[toolBar],
            autoPaging:true,
            plugins: [
                {//此块无用,关键在下一块
                    xclass: 'Ext.plugin.ListPaging',
                    autoPaging: true,
                    loadMoreText:'下拉加载',
                    refreshFn:function(){
                        Ext.Msg.alert("下拉!") ;
                        }
                },
                {//事件为拉上方
                  xclass: 'Ext.plugin.PullRefresh',
                 
pullRefreshText: 'Pull down for more new Tweets!',
                 
releaseRefreshText:'正在刷新...',
                  refreshFn: function(loaded,arguments){
                    /* do something */
                    page ++ ;//数字变量,为当前页加一,而后通过下方调用Java源码放回Json字符串
                    
                    List.getStore().loadData(JSON.parse(dataofsqlite.findNumberJson(page,5)),true) ;//划线处参数需要是Json对象,后一参数true/false决定是否添加数据到前端。
                    List.refresh() ;
                    
                  }

            }],
            
            emptyText:'没有数据',  
            baseCls:'Book',
            selectedCls:'selected',
            listeners : {
                        itemdoubletap : function(dataview, index, item, record,
                                e) {
                            
                            sessionStorage.setItem("id", bookStore.getAt(index)
                                    .get('id'));
                            window.location.href = "hotel_detial.html";
                        }
                    }
        });

效果:

   

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值