以编程方式从Listview添加/删除项目?

时间:2020-07-27 21:45:34

标签: android tizen tizen-web-app

我正在尝试为我的Samsung Gear S3创建一个应用程序,该应用程序从API提取数据,动态创建Listview,并使用通过API返回的数据传播它。我已经将项目放在列表中了,但是当页面隐藏时,我想从列表中删除所有内容。由于我首先以编程方式进行操作,因此没有简单的方法,例如使用querySelector删除所有元素并刷新Listview。

也就是说,我如何使用.addItem-是否有未记录的.removeItem或等效文件?

此刻,我正在监听pagebeforehide事件,并在创建的Listview上调用.destroy()-在清除_items属性但删除Listview的意义上,它起作用仍然显示以前的所有项目...

我现在拥有的代码可以在下面看到。

(function() {
    var page = document.getElementById('search.results'),
        listView;
    var elems = [ ];
    
    page.addEventListener("pagebeforeshow", function() {
        if(sessionStorage.length && sessionStorage.getItem("currentResults")) {
            var currentResults = JSON.parse(sessionStorage.getItem("currentResults"));
            var elem = document.getElementById("results-list");
            listView = tau.widget.Listview(elem, { dataLength: currentResults.length, bufferSize: 10 });
            listView.setListItemUpdater(function(listElement, newIndex) {
                var data = currentResults[newIndex];
                listElement.innerHTML = data.Description;
                listElement.id = data.EAN;
            });
        }
        
        $("li").click(function(e) {
            var li = $(e.target);
            if(li.attr("id")) {
                var EAN = li.attr("id");
                tau.changePage("product.html", { name: li.innerHTML, ean: EAN });
            }
        });
    });
    
    page.addEventListener("pagebeforehide", function() {
        console.log("page before hide");
        if(sessionStorage.length && sessionStorage.getItem("currentResults")) {
            console.log(sessionStorage);
            sessionStorage.removeItem("currentResults");
            console.log(sessionStorage);
        }
        listView.destroy();
        console.log(listView);
    });
}());

1 个答案:

答案 0 :(得分:0)

此列表实际上没有用于删除项目或绑定到数据的API。 我看到您实际上已经解决了这个问题。

我认为现在清除列表的基本元素就足够了,例如。 listView.element.innerHTML = ""document.getElementById("results-list").innerHTML = ""

我认为您也可以在https://github.com/Samsung/TAU/issues上创建问题 因为.destroy()方法应删除在构建小部件之前未附加到小部件的项目。

相关问题