2012-12-26 39 views
4

我有一個應用程序,其中顯示來自服務的項目。在這裏,我有大約200個項目來顯示哪些是很難看到的。如何在android中使用phonegap實現加載更多功能?

這裏我想要顯示加載更多的功能,通過顯示前20和點擊加載更多它會顯示下20等等。我無法找到一個方法來實現這個如果任何人有想法請幫助我。

+0

保存設備中某處的所有200個項目(比如共享prefences),但只顯示20個項目,並在用戶希望時進一步加載。 –

+0

嗨,謝謝你的迴應,請你告訴我該怎麼做? –

回答

1

使用phonegap/cordova加載200項並存儲它們不是一個好方法。我們正在談論已經很慢的HTML5 + JS包裝,這會讓它變得更慢。

更好的方法是使用ajax加載更多數據,當您到達列表視圖結束時或單擊「加載新內容」按鈕時,將觸發ajax調用。

在這裏,你會發現「加載新的內容」按鈕的方法:

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

這裏達到列表視圖結束的時候,你會發現有自動加載列表視圖的方法:

HTTP:/ /jsfiddle.net/dhavaln/nVLZA/

此示例需要此jQuery插件:http://imakewebthings.com/jquery-waypoints/

下面是我的榜樣,支持自動加載ListView和$就在commbination:

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'); 
    } 
} 

您還需要在最後一次結束之前阻止另一個$ .ajax調用。

0

儘管我對Phonegap和共享首選項並不熟悉,但是一點研究工作讓我知道在phonegap中沒有直接的方式來使用共享首選項(只要我可以搜索)。

  • 如果您仍然想在Phonegap中使用共享首選項,則需要爲其添加插件。
  • 我能找到的另一種方法是使用Local Storage using HTML5 and JSON
  • 另一種方式是使用Lawnchair來實現數據庫。 YOu會找到一個很好的解決方案herehere
  • 和我發現迄今爲止最有效的方法之一是Webkit Client side Databse Storage。它會以某種方式很好地匹配你的問題。
相關問題