如何在android中使用phonegap实现load more功能

How to implement load more function in android using phonegap?

本文关键字:实现 phonegap load more 功能 android      更新时间:2023-09-26

我有一个应用程序,我在其中显示来自服务的项目。这里我有大约200个项目要显示,这是一些很难看到的。

这里我想显示加载更多的功能,通过显示前20和点击加载更多,它将显示下一个20等等。我不能找到一种方法来实现这一点,如果有人有想法,请帮助我。

加载200个条目并存储它们不是phonegap/cordova的好方法。我们说的是已经很慢的HTML5 + JS包装器,这将使它更慢。

更好的方法是使用ajax来加载更多的数据,ajax调用将被触发,当你到达列表视图结束或当"加载新内容"按钮被点击。

在这里你会发现一个加载新内容按钮的方法:

http://jsfiddle.net/knuTW/2/

当到达listview end时,你会发现一个自动加载listview的方法:

http://jsfiddle.net/dhavaln/nVLZA/

这个例子需要这个jQuery插件:http://imakewebthings.com/jquery-waypoints/

这是我的例子与自动加载listview和$。Ajax组合:

http://jsfiddle.net/Gajotres/v4NxB/

代码示例,我重复一下,这只是一个虚拟示例(仍然工作的虚拟示例):

// load test data initially
for (i=0; i < 10; i++) {
    $("#list").append($("<li><a href='"index.html'"><h3>" + i + "</h3><p>z</p></a></li>"));
}
$("#list").listview('refresh');

// load new data when reached at bottom
$('#footer').waypoint(function(a, b) {
    // Load some dynamic data with $.ajax
   $.ajax({url: "http://api.themoviedb.org/2.1/Movie.search/en/json/23afca60ebf72f8d88cdcae2c4f31866/The Goonies",
        dataType: "jsonp",
        jsonpCallback: 'successCallback',
        async: true,
        beforeSend: function() {
            $.mobile.showPageLoadingMsg(true);
        },
        complete: function() {
            $.mobile.hidePageLoadingMsg();
        },
        success: function (result) {
            ajax.parseJSONP(result);
        },
        error: function (request,error) {
            //alert('Network error has occurred please try again!');
        }
    });    
    $('#footer').waypoint({
        offset: '100%'
    });
}, {
    offset: '100%'
});
var ajax = {  
    parseJSONP:function(result){
        //var jsonObj = jQuery.parseJSON(parameters);
        $("#list").append('<li>Movie name:<span> ' + result[0].original_name+ '</span></li>');
        $("#list").append('<li>Popularity:<span> ' + result[0].popularity + '</span></li>');
        $("#list").append('<li>Rating:<span> ' + result[0].rating+ '</span></li>');
        $("#list").append('<li>Overview:<span> ' + result[0].overview+ '</span></li>');
        $("#list").append('<li>Released:<span> ' + result[0].released+ '</span></li>');        
        $("#list").listview('refresh');
    }
}

您还需要防止另一个$。

虽然我对Phonegap和共享偏好不是很熟悉,但是一点点的研究努力让我知道没有直接的方法在Phonegap中使用共享偏好(据我所知)。

  • 如果你还想在Phonegap中使用共享偏好设置,你需要为它添加插件。
  • 我能找到的另一种方法是使用HTML5和JSON使用本地存储。
  • 另一种方法是使用Lawnchair实现数据库。你会在这里和这里找到好的解决方案
  • 和最有效的方式之一,我发现到目前为止是Webkit客户端数据库存储。它将在某种程度上很好地匹配您的问题。