【问题标题】:Implementing feed in Android在 Android 中实现提要
【发布时间】:2014-08-19 06:27:31
【问题描述】:

我想在 Android 中实现一个类似于提要的结构,它从服务器下载一些数据并通过解析以某种形式显示它。

似乎使用 Hashmaps 可能是关于如何存储它的答案 (http://www.vogella.com/tutorials/AndroidListView/article.html) 但我无法理解如何从服务器推送/拉取动态更新它。

任何人都可以了解如何实现 Hashmap/listview 的动态更新,以便按下“刷新”按钮可以使用新值更新列表吗?

感谢您的帮助... SO 的新功能

【问题讨论】:

    标签: java android android-listview hashmap


    【解决方案1】:

    我只是给你一个快速的例子来说明如何做这样的事情,

    1-首先创建一个可以保存我们数据的类

        public class Feeds {
        String img, title, subtitle;
        long id;
    
        public Feeds(long id, String img, String title, String subtitle) {
            this.id = id;
            this.img = img;
            this.title = title;
            this.subtitle = subtitle;
        }
        public long getId(){
            return id;
        }
        public String getImg() {
            return img;
        }
    
        public void setImg(String img) {
            this.img = img;
        }
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getSubtitle() {
            return subtitle;
        }
    
        public void setSubtitle(String subtitle) {
            this.subtitle = subtitle;
        }
    
    }
    

    然后在您的activity class 中创建一个包含您的班级的列表,例如List<Feeds> iconItem = new ArrayList<Feeds>();
    然后当您从服务器获取数据时第三次这样做

    iconItem.add(new Feeds(json.getLong("id"), json
                                    .getString("img"), json.getString("title"),
                                    json.getString("subtitle")));
    

    然后在您的 listView adapter constructor 中添加参数,例如 Context c, List<Feeds> feeds
    然后在 Adapter 的 getView 中执行 feed = feeds.get(position);
    现在您可以将所有数据传递给您的视图,例如 myTextView.setText(feed.get(position).getTitle());

    要更新您的 listView,只需将新数据添加到您的 List 并通过调用 mAdapter.notifyDataSetChanged(); 来通知 Adapter 有新数据

    【讨论】:

    • 哇!我认为这是完美的......会试一试并告诉你它是如何进行的。没想到这么迅速的回复.. SO社区摇滚! PS:因为我没有足够的声望点,所以无法投票给答案。如何将其标记为正确答案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多