博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android UI控件组合应用之一:建立数据模型
阅读量:4043 次
发布时间:2019-05-24

本文共 5589 字,大约阅读时间需要 18 分钟。

首先,需要定义数据模型,主要的数据抽象是Site、Blog、User,分别代表网站、博文、用户,数据模型如下图所示:

具体成员的含义就不解释了。如果你没用过新浪微博,建议去用一下,或者可以参考http://open.weibo.com/中的开发文档。

这几个类的代码如下:

view plaincopy to clipboardprint?   
package com.wenbin.test.site;    
    
public class User{    
    private String profileImageUrl="http://tp3.sinaimg.cn/1500460450/50/1289923764/0";    
    private String screenName="测试";    
    private boolean verified=false;    
    
    public User(){    
            
    }    
    
    public String getProfileImageUrl(){    
        return profileImageUrl;    
    }    
    
    public String getScreenName(){    
        return screenName;    
    }    
    
    public void setProfileImageUrl(String profileImageUrl) {    
        this.profileImageUrl = profileImageUrl;    
    }    
    
    public void setScreenName(String screenName) {    
        this.screenName = screenName;    
    }    
    
    public void setVerified(boolean verified) {    
        this.verified = verified;    
    }    
    
    public boolean isVerified(){    
        return verified;    
    }    
}   

view plaincopy to clipboardprint?   
package com.wenbin.test.site;    
    
import java.util.Date;    
    
public class Blog implements Comparable
{    
    
    private Date createAt=new Date(System.currentTimeMillis());    
    private Blog retweetedBlog;    
    private String text="就算把我打的遍体鳞伤也见不得会[泪]?http://blog.csdn.net/caowenbin @移动云_曹文斌 。";    
    private String smallPic="";    
    private String source="IE9";    
    private User user;    
    private Site site;    
    
    public Blog(){    
    
    }    
        
    public Blog(Site site){    
        this.site=site;    
    }    
    
    public boolean isHaveRetweetedBlog(){    
        return retweetedBlog!=null;    
    }    
        
    public Blog getRetweetedBlog(){    
        return retweetedBlog;    
    }    
    
    
    public String getText(){    
        return text;    
    }    
    
    public User getUser(){    
        return user;    
    }    
        
    public String getSmallPic(){    
        return smallPic;    
    }    
    
    public void setRetweetedBlog(Blog retweetedBlog) {    
        this.retweetedBlog = retweetedBlog;    
    }    
    
    public void setText(String text) {    
        this.text = text;    
    }    
        
    public String getInReplyUserScreenName(){    
        if (retweetedBlog!=null && retweetedBlog.getUser()!=null)    
            return retweetedBlog.getUser().getScreenName();    
        else    
            return "";          
    }    
        
    public String getInReplyBlogText(){    
        if (retweetedBlog!=null)    
            return retweetedBlog.getText();    
        else    
            return "";      
    }    
        
    public void setPic(String smallPic){    
        this.smallPic=smallPic;    
    }    
    
    public void setUser(User user) {    
        this.user = user;    
    }    
    
    public int compareTo(Blog another) {    
        int ret=0;    
    
        if (this.createAt.before(another.createAt)){    
            ret=-1;    
        }    
        else if (this.createAt.after(another.createAt)){    
            ret=1;    
        }    
        else{    
            ret=0;      
        }    
    
        return ret;    
    }    
    
    public void setSource(String source) {    
        this.source = source;    
    }    
    
    public String getSource() {    
        return source;    
    }    
    
    public void setSite(Site site) {    
        this.site = site;    
    }    
    
    public Site getSite() {    
        return site;    
    }    
    
}   

view plaincopy to clipboardprint?   
package com.wenbin.test.site;    
    
import java.util.HashMap;    
import java.util.Iterator;    
import java.util.Map;    
import java.util.Set;    
import java.util.TreeSet;    
    
    
public abstract class Site{    
    
    protected Set
 blogs=new TreeSet
();    
    protected String name;    
    protected Map
 faceMap=new HashMap
();    
    
    public Site() {    
        onConstruct();    
    }    
    
    protected abstract void onConstruct();    
        
    public Map
 getFaceMap() {    
        return faceMap;    
    }    
        
    public Set
 getBlogs(){             return blogs;         }                  public long getBlogsCount(){             return blogs.size();         }                  public void addBlog(Blog blog){             blogs.add(blog);         }                  public void removeBlog(Blog blog){             blogs.remove(blog);         }                  public Iterator
 getBlogsIterator(){             return blogs.iterator();         }                  public void clearBlogs(){             blogs.clear();         }              public String getName(){             return name;         }     }   

view plaincopy to clipboardprint?   
package com.wenbin.test.site;    
    
public class SinaSite extends Site {    
    
    protected void onConstruct(){    
        name="新浪微博";    
        initFaceMap();    
    }    
    
    private void initFaceMap(){    
        faceMap.put("[呵呵]", "hehe");    
        faceMap.put("[嘻嘻]", "xixi");    
        faceMap.put("[哈哈]", "haha");    
        faceMap.put("[爱你]", "aini");    
        faceMap.put("[晕]", "yun");    
        faceMap.put("[泪]", "lei");    
    }    
}   
你可能感兴趣的文章
转载一个webview开车指南以及实际项目中的使用
查看>>
android中对于非属性动画的整理
查看>>
一个简单的TabLayout的使用
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming 输出每一行句子的第三个单词
查看>>
Returning a value from a function
查看>>
coursesa课程 Python 3 programming Functions can call other functions 函数调用另一个函数
查看>>
coursesa课程 Python 3 programming The while Statement
查看>>
course_2_assessment_6
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>