该App已经上传到百度应用市场:http://shouji.baidu.com/soft/item?docid=8928185&from=as&f=search_app_it%E8%B5%84%E8%AE%AF%40list_1_image%402%40header_all_input

有兴趣的可以下载看看。接下来我会公布源代码,不过该App并没有使用代码混淆,所以可以通过反编译清楚的看到源码。

首先是封装的对象:

public class NewsDto {private List<News>newses;
    private String nextPage;

    public List<News> getNewses(){return newses;
    }public String getNextPage() {return nextPage;
    }public void setNextPage(String nextPage) {this.nextPage = nextPage;
    }public void setNewses(List<News> newses) {this.newses = newses;
    }
}
public class News {/*
    标题
     */
    private String title;
    /**
     * 摘要
     */
    private String sumary;
    /**
     * 内容
     */
    private String content;
    /**
     * 图片链接
     */
    private String imageLink;
    /**
     * 类型
     */
    private int type;
    /**
     * 上一篇
     */
    private String prevPassage;
    /**
     * 上一篇的url
     */
    private String prevUrl;
    /**
     * 下一篇
     */
    private String nextPassage;
    /**
     * 下一篇的url
     */
    private String nextUrl;
    public String getTitle() {return title;
    }public void setTitle(String title) {this.title = title;
    }public String getSumary() {return sumary;
    }public void setSumary(String sumary) {this.sumary = sumary;
    }public String getContent() {return content;
    }public void setContent(String content) {this.content = content;
    }public String getImageLink() {return imageLink;
    }public void setImageLink(String imageLink) {this.imageLink = imageLink;
    }public int getType() {return type;
    }public void setType(int type) {this.type = type;
    }public String getPrevPassage() {return prevPassage;
    }public void setPrevPassage(String prevPassage) {this.prevPassage = prevPassage;
    }public String getNextPassage() {return nextPassage;
    }public void setNextPassage(String nextPassage) {this.nextPassage = nextPassage;
    }public String getPrevUrl() {return prevUrl;
    }public void setPrevUrl(String prevUrl) {this.prevUrl = prevUrl;
    }public String getNextUrl() {return nextUrl;
    }public void setNextUrl(String nextUrl) {this.nextUrl = nextUrl;
    }
}

添加了一个新的业务方法,把html字符串转化为List对象:

一 :CSDN

public NewsDto getNews(String urlStr) throws CommonExecption {NewsDto newsDto = new NewsDto();
    List<News> newses = new ArrayList<>();
    String htmlStr = DataUtil.doGet(urlStr, "UTF-8");
    Document doc = Jsoup.parse(htmlStr);

    // 获得文章中的第一个detail
//    System.out.println(htmlStr);
    Element detailEle = doc.select(".left .detail").get(0);
    // 标题
    Element titleEle = detailEle.select("h1.title").get(0);
    News news = new News();
    String title = titleEle.text();
    title = AppUtil.encoding(title,"utf-8");
    news.setTitle(title);
    news.setType(Constant.TITLE);
    newses.add(news);
    // 摘要
    Element summaryEle = detailEle.select("div.summary").get(0);
    news = new News();
    String summary = summaryEle.text();
    summary = AppUtil.encoding(summary,"utf-8");
    news.setSumary(summary);
    news.setType(Constant.SUMMARY);
    newses.add(news);
    // 内容
    Element contentEle = detailEle.select("div.con.news_content").get(0);
    Elements childrenEle = contentEle.children();

    for (Element child : childrenEle) {Elements imgEles = child.getElementsByTag("img");
        // 图片
        if (imgEles.size() > 0) {for (Element imgEle : imgEles) {if (imgEle.attr("src").equals(""))continue;
                news = new News();
                String imgLink = imgEle.attr("src");
                imgLink = AppUtil.encoding(imgLink,"utf-8");
                news.setImageLink(imgLink);
                news.setType(Constant.IMG);
                newses.add(news);
            }}// 移除图片
        imgEles.remove();

        if (child.text().equals(""))continue;

        news = new News();
        news.setType(Constant.CONTENT);

        try {if (child.children().size() == 1) {Element cc = child.child(0);
                if (cc.tagName().equals("b")) {news.setType(Constant.BOLD_TITLE);
                }}} catch (IndexOutOfBoundsException e) {e.printStackTrace();
        }String content = child.outerHtml();
        content = AppUtil.encoding(content,"utf-8");
        news.setContent(content);
        newses.add(news);
    }newsDto.setNewses(newses);
    return newsDto;
}

二 :51CTO:

/**
  * 开发技术
  *
  * @param urlStr
  * @return
  * @throws CommonExecption
  */
 public NewsDto getNewsDevelopment1(String urlStr) throws CommonExecption {int index = 0;
     NewsDto newsDto = new NewsDto();
     List<News> newses = new ArrayList<News>();
     String htmlStr = DataUtil.doGet(urlStr,"GB2312");
     Document doc = Jsoup.parse(htmlStr);

     // ±êÌâ
     Element detailEle = doc.select(".showTitleBOx .showTitle").get(0);
     News news = new News();

     news.setTitle(detailEle.text());
     news.setType(Constant.TITLE);
     newses.add(news);

     Element contentEle2 = doc.select(".showContent").get(0);
     Elements childrenEle = contentEle2.children();

     for (Element element : childrenEle) {if (element.getElementsByTag("h3").size() != 0) {news = new News();
             news.setContent(element.getElementsByTag("h3").text());
             news.setType(Constant.CONTENT);
             newses.add(news);
         }if (element.getElementsByTag("h1").size() != 0) {news = new News();
             news.setContent(element.getElementsByTag("h1").text());
             news.setType(Constant.CONTENT);
             newses.add(news);
         }if (element.getElementsByTag("h2").size() != 0) {news = new News();
             news.setContent(element.getElementsByTag("h2").text());
             news.setType(Constant.CONTENT);
             newses.add(news);
         }if (element.getElementsByTag("h4").size() != 0) {news = new News();
             news.setContent(element.getElementsByTag("h4").text());
             news.setType(Constant.CONTENT);
             newses.add(news);
         }if (element.getElementsByTag("img").size() != 0) {Elements imgEles = element.getElementsByTag("img");
             // ͼƬ
             if (imgEles.size() > 0) {// System.out.println("img------>"+imgEles.attr("href"));

                 for (Element imgEle : imgEles) {if (imgEle.attr("src").equals(""))continue;
                     news = new News();
                     news.setImageLink(imgEle.attr("src"));
                     news.setType(Constant.IMG);
                     newses.add(news);
                 }}imgEles.remove();
         }if (element.getElementsByTag("a").size() != 0) {Elements imgEles = element.getElementsByTag("a");
             // ͼƬ
             if (imgEles.size() > 0) {// System.out.println("img------>"+imgEles.attr("href"));

                 for (Element imgEle : imgEles) {if (imgEle.attr("href").equals(""))continue;
                     news = new News();
                     news.setImageLink(imgEle.attr("href"));
                     news.setType(Constant.IMG);
                     newses.add(news);
                 }}imgEles.remove();
         }if (element.text().equals(""))continue;

/*         if (element.getElementsByTag("span").size() != 0) {
             Elements contentEle3 = element.getElementsByTag("span");
             news = new News();
             String content = contentEle3.text();
             byte[] bytes = { (byte) 0xC2, (byte) 0xA0 };
             try {
                 String UTFSpace = new String(bytes, "utf-8");
                 content = content.replace(UTFSpace, " ");
             } catch (UnsupportedEncodingException e) {
                 e.printStackTrace();
             }
             news.setContent(content);
             news.setType(Constant.CONTENT);
             newses.add(news);

         }
         */

         if (element.getElementsByTag("p").size() != 0) {Elements contentEle3 = element.getElementsByTag("p");
             news = new News();
             String content = contentEle3.text();
             content=AppUtil.encoding(content,"gb2312");
             news.setContent(content);
             news.setType(Constant.CONTENT);
             newses.add(news);
         }if (element.getElementsByTag("pre").size() != 0) {Elements contentEle4 = element.getElementsByTag("pre");
             news = new News();
             String content1 = contentEle4.text();
             byte[] bytes1 = { (byte) 0xC2, (byte) 0xA0 };
             try {String UTFSpace = new String(bytes1, "utf-8");
                 content1 = content1.replace(UTFSpace, " ");
             } catch (UnsupportedEncodingException e) {e.printStackTrace();
             }news.setContent(content1);
             news.setType(Constant.CONTENT);
             newses.add(news);
         }}// System.out.println("content------"+content4);

     String nextPageUri = "http://wuyvzhang.blog.51cto.com";
     Element nextPage = doc.select(".prevNext").get(0);
     String uri = nextPage.getElementsByTag("a").attr("href");
     newsDto.setNextPage(nextPageUri + uri);
     // ÄÚÈÝ

     newsDto.setNewses(newses);
     return newsDto;
 }

三 博客园:

public NewsDto getNewsDevelopment1(String urlStr, int cutrrent, int newType) throws CommonExecption {NewsDto newsDto = new NewsDto();
    List<News> newses = new ArrayList<News>();
    String htmlStr = BlogHouseDataUtil.doGet(urlStr, cutrrent, newType);
    Document doc = Jsoup.parse(htmlStr);

    // 标题
    Element detailEle = doc.select(".post").get(0);

    String title = doc.getElementById("cb_post_title_url").text();
    title=AppUtil.encoding(title,"utf-8");
    News news = new News();

    news.setTitle(title);
    news.setType(Constant.TITLE);
    newses.add(news);

    //Element contentEle2 = detailEle.select(".postBody").get(0);

    Element contentEle31 = detailEle.getElementById("cnblogs_post_body");
    Elements childrenEle = contentEle31.children();

    for (Element element : childrenEle) {if (element.getElementsByTag("h3").size() != 0) {news = new News();
            news.setContent(element.getElementsByTag("h3").text());
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (element.getElementsByTag("ul").size() != 0) {//    Elements elements = element.getElementsByTag("ul");
        //    for (Element element1 : elements) {
                   news = new News();
                   StringBuffer sb =new StringBuffer();
                if (element.getElementsByTag("li").text() != null) {String content=element.getElementsByTag("li").text();
                    news.setContent(sb.append(content).append("\n").toString());
                    news.setType(Constant.CONTENT);
                    newses.add(news);
                } else {news.setContent(element.getElementsByTag("a").text());
                    news.setType(Constant.CONTENT);
                    newses.add(news);
                }// }
        }if (element.getElementsByTag("h1").size() != 0) {news = new News();
            news.setContent(element.getElementsByTag("h1").text());
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (element.getElementsByTag("h2").size() != 0) {news = new News();
            news.setContent(element.getElementsByTag("h2").text());
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (element.getElementsByTag("h4").size() != 0) {news = new News();
            news.setContent(element.getElementsByTag("h4").text());
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (element.getElementById("blogCustomTitleStyle") != null) {Element contentEle3 = element.getElementById("blogCustomTitleStyle");
            news = new News();
            String content = contentEle3.text();
            content=AppUtil.encoding(content,"gb2312");
            news.setContent(content);
            news.setType(Constant.CONTENT);
            newses.add(news);

        } else if (element.getElementsByTag("p").size() != 0) {news = new News();
            String content=element.getElementsByTag("p").text();
            content=AppUtil.encoding(content,"gb2312");
            news.setContent(content);
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (element.getElementById("blogCustomTitleIco") != null) {Element contentEle3 = element.getElementById("blogCustomTitleIco");
            news = new News();
            String content = contentEle3.text();
            content=AppUtil.encoding(content,"gb2312");
            news.setContent(content);
            news.setType(Constant.CONTENT);
            newses.add(news);

        }if (element.getElementsByTag("img").size() != 0) {Elements imgEles = element.getElementsByTag("img");
            // ͼƬ
            if (imgEles.size() > 0) {// System.out.println("img------>"+imgEles.attr("href"));

                for (Element imgEle : imgEles) {if (imgEle.attr("src").equals(""))continue;
                    news = new News();
                    news.setImageLink(imgEle.attr("src"));
                    news.setType(Constant.IMG);
                    newses.add(news);
                }}imgEles.remove();
        }if (element.getElementsByTag("a").size() != 0) {Elements imgEles = element.getElementsByTag("a");
            // 图片
            if (imgEles.size() > 0) {for (Element imgEle : imgEles) {if (imgEle.attr("href").equals(""))continue;
                    news = new News();
                    String image = imgEle.attr("href");
                    if (image.endsWith(".jpg") || image.endsWith(".png") || image.endsWith(".gif")) {news.setImageLink(image);
                        news.setType(Constant.IMG);
                        newses.add(news);
                    }}}imgEles.remove();
        }if (element.text().equals(""))continue;

   /*     if (element.getElementsByTag("span").size() != 0) {
            String content = element.getElementsByTag("p").text();
            content=AppUtil.encoding(content,"gb2312");
            news = new News();
            news.setContent(content);
            news.setType(Constant.CONTENT);
            newses.add(news);

        }
   */

        if (element.getElementsByTag("pre").size() != 0) {Elements contentEle4 = element.getElementsByTag("pre");
            news = new News();
            String content = contentEle4.text();
            content=AppUtil.encoding(content,"utf-8");
            news.setContent(content);
            news.setType(Constant.CONTENT);
            newses.add(news);
        }}Element element =doc.getElementById("post_next_prev");
    String prevPageUrl=element.getElementsByTag("a").attr("href");
    String prevTitle=element.getElementsByTag("a").text();
    news =new News();
    news.setPrevPassage(prevTitle);
    news.setPrevUrl(prevPageUrl);
    news.setType(Constant.PREV);
    newsDto.setNewses(newses);
    return newsDto;
}

四    ITEYE

public NewsDto getNewsDevelopment1(String urlStr) throws CommonExecption {NewsDto newsDto = new NewsDto();
    List<News> newses = new ArrayList<News>();
    String htmlStr = ITeyeDataUtil.doGet(urlStr);
    //   System.out.println("title------"+htmlStr);
    Document doc = Jsoup.parse(htmlStr);
    News news = null;
    if (doc.select(".title").size() > 0) {Element detailEle = doc.select(".title").get(0);

        String title = detailEle.getElementsByTag("a").get(0).text();
        news = new News();

        news.setTitle(title);
        news.setType(Constant.TITLE);
        newses.add(news);
    }if (doc.select(".title_block").size() > 0) {Element element = doc.select(".title_block").get(0);
        String title = element.getElementsByTag("a").get(1).text();
        news = new News();

        news.setTitle(title);
        news.setType(Constant.TITLE);
        newses.add(news);
    }if (doc.select(".blog_title").size() > 0) {Element element = doc.select(".blog_title").get(0);
        String title = element.getElementsByTag("a").get(0).text();
        news = new News();
        news.setContent(title);
        news.setType(Constant.CONTENT);
        newses.add(news);
    }if (doc.select(".blog_content").size() > 0) {Element element = doc.select(".blog_content").get(0);
            String content = element.text();
            String[] content1 = content.split("。");
           for (int i=0;i<content1.length;i++){news=new News();
               news.setType(Constant.CONTENT);
               news.setContent(content1[i]);
               newses.add(news);
           }}if (doc.getElementById("news_content") != null) {Element element = doc.getElementById("news_content");
        String content1 = element.text();
        String[] content2 = content1.split("。");
        for (int i = 0; i < content2.length; i++) {news = new News();
            news.setContent(content2[i] + "。");
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (doc.getElementsByTag("li").size() < 0) {news = new News();
            StringBuffer sb = new StringBuffer();
            String content = sb.append(doc.getElementsByTag("li").text()).append("\n").toString();
            news.setContent(content);
            news.setType(Constant.CONTENT);
            newses.add(news);
        }if (doc.getElementsByTag("img").size() > 0) {Elements imgEles = element.getElementsByTag("img");

            if (imgEles.size() > 0) {for (Element imgEle : imgEles) {if (imgEle.attr("src").equals(""))continue;
                    news = new News();
                    news.setImageLink(imgEle.attr("src"));
                    news.setType(Constant.IMG);
                    newses.add(news);
                }}imgEles.remove();

        }}if (doc.getElementById("interview_main") != null) {Element element = doc.getElementById("interview_main");
        if (doc.getElementById("interview_menu") != null) {Element element2 = doc.getElementById("interview_menu");
            String content = element2.getElementsByTag("h4").text();
            news = new News();
            news.setType(Constant.CONTENT);
            news.setContent(content);
            newses.add(news);
        }if (element.getElementsByTag("li").size() > 0) {Elements elements = element.getElementsByTag("li");
                for (Element element1 : elements) {news = new News();
                    news.setType(Constant.CONTENT);
                    news.setContent(element1.getElementsByTag("li").text());
                    newses.add(news);
                }}if (element.getElementsByTag("h2") != null) {Elements element1=element.getElementsByTag("h2");
            for (Element element2 :element1)news = new News();
            news.setType(Constant.CONTENT);
            news.setContent(element1.text());
            newses.add(news);
        }}if (doc.select(".news_content").size() > 0) {Elements contentEle31 = doc.select(".news_content");

        for (Element element3 : contentEle31) {if (element3.getElementsByTag("div").size() != 0) {if (element3.getElementsByTag("img").size() != 0) {Elements imgEles = element3.getElementsByTag("img");
                    if (imgEles.size() > 0) {for (Element imgEle : imgEles) {if (imgEle.attr("src").equals(""))continue;
                            news = new News();
                            news.setImageLink(imgEle.attr("src"));
                            news.setType(Constant.IMG);
                            newses.add(news);
                            imgEles.remove();
                        }}}String content = element3.getElementsByTag("div").get(0).text();
                byte[] bytes = {(byte) 0xC2, (byte) 0xA0};
                try {String UTFSpace = new String(bytes, "utf-8");
                    content = content.replace(UTFSpace, " ");
                } catch (UnsupportedEncodingException e) {e.printStackTrace();
                }String[] content2 = content.split("。");
                for (int i = 0; i < content2.length; i++) {news = new News();
                    news.setContent(content2[i]);
                    news.setType(Constant.CONTENT);
                    newses.add(news);
                }}}}newsDto.setNewses(newses);
    return newsDto;
}

上一教程已经完成了Xlist的显示,上拉与下拉,现在给它添加OnItemClickListener:

mXlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {NewsItem newsItem = mDatas.get(position-1);
        NewsItem nextItem=mDatas.get(position);
        Intent intent=null;
        if (newTypes_iteye==17){intent = new Intent(getActivity(), SubjectsActivity.class);
            intent.putExtra("url", newsItem.getLink());
        }else {intent = new Intent(getActivity(), NewsContentActivity.class);
            intent.putExtra("url", newsItem.getLink());
            intent.putExtra("nextUrl", nextItem.getLink());
            intent.putExtra("select", select);
            intent.putExtra("cuttenrPage", currentPage);
        }startActivity(intent);
    }
});

到达显示内容的Activity页面:

public class NewsContentActivity extends BaseActivityImpl implements IXListViewLoadMore {private XListView listView;
    /**
     * 该页面的URL
     */
    private String url;
    //下一篇文章的url
    private String nextUrl;
    //选的是哪个博客;
    private int select;
    //当前的是那一页
    private int currentPage;
    private NewsItemBiz newsItemBiz;
    private NewItem51CTO newItem51CTO;
    private NewItemBlogHouse newItemBlogHouse;
    private NewItemITeye newItemITeye;

    private List<News> data;
    private ProgressBar progressBar;
    private NewsContentAdapter adapter;
    private ImageView nextPage;
    @Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
        setContentView(R.layout.news_content);
        Bundle bundle = getIntent().getExtras();
        url = bundle.getString("url");
        nextUrl=bundle.getString("nextUrl");
        select=bundle.getInt("select");
        currentPage=bundle.getInt("currentPage");
        initBiz();
        adapter = new NewsContentAdapter(this,select);
        listView = (XListView) findViewById(R.id.id_listview);
        progressBar = (ProgressBar) findViewById(R.id.id_newsContentPro);
        nextPage=(ImageView)findViewById(R.id.next);
        nextPage.setOnClickListener(new View.OnClickListener() {@Override
            public void onClick(View v) {Intent intent=new Intent(NewsContentActivity.this,NewsContentActivity.class);
                intent.putExtra("url",nextUrl);
                startActivity(intent);
            }});
        listView.setAdapter(adapter);
        listView.disablePullRefreash();
        listView.setPullLoadEnable(this);

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {News news = data.get(position - 1);
               switch (view.getId()){case R.id.imageView:String imageLink = news.getImageLink();
                       Intent intent = new Intent(NewsContentActivity.this, ImageShowActivity.class);
                       intent.putExtra("url", imageLink);
                       startActivity(intent);
                       break;
                   case R.id.prev:Intent prevIntent=new Intent(NewsContentActivity.this,NewsContentActivity.class);
                       prevIntent.putExtra("url",news.getPrevUrl());
                       startActivity(prevIntent);
                       break;
                   case R.id.next:Intent nextIntent=new Intent(NewsContentActivity.this,NewsContentActivity.class);
                       nextIntent.putExtra("url",news.getNextUrl());
                       startActivity(nextIntent);
                       break;
               }}});
        new LoadDataTask().execute();
    }/**
     * 初始化Biz
     */
    public void initBiz(){newsItemBiz = new NewsItemBiz();
        newItem51CTO=new NewItem51CTO();
        newItemBlogHouse=new NewItemBlogHouse();
        newItemITeye=new NewItemITeye();
    }@Override
    public void onLoadMore() {}class LoadDataTask extends AsyncTask<Void,Void,Void>{@Override
        protected void onPreExecute() {progressBar.setVisibility(View.VISIBLE);
        }@Override
        protected Void doInBackground(Void... params) {try {switch (select){case 1:data = newsItemBiz.getNews(url).getNewses();
                        break;
                    case 2:data = newItem51CTO.getNewsDevelopment1(url).getNewses();
                        break;
                    case 3:data = newItemBlogHouse.getNewsDevelopment1(url,currentPage,select).getNewses();
                        break;
                    case 4:data = newItemITeye.getNewsDevelopment1(url).getNewses();
                        break;
                    case 5:String html= ITeyeDataUtil.doGet(url);
                        data = newItemITeye.getSubjectDTO(html).getNewses();
                        for (News news :data){System.out.println("content------>"+news.getContent());
                        }break;

                }}catch (CommonExecption e){Looper.prepare();
                Toast.makeText(getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT).show();
                Looper.loop();
            }return null;
        }@Override
        protected void onPostExecute(Void aVoid) {if(data==null)return;
            adapter.addList(data);
            adapter.notifyDataSetChanged();
            progressBar.setVisibility(View.GONE);
        }}/**
     * 点击返回按钮
     * @param view
     */
    public void back(View view){finish();
    }@Override
    protected void onResume() {super.onResume();
        MobclickAgent.onResume(this);
    }@Override
    protected void onPause() {super.onPause();
        MobclickAgent.onPause(this);
    }
}

接下来看这个Activity中ListView的Adapter

public class NewsContentAdapter extends BaseAdapter {private LayoutInflater inflater;
    private List<News> data = new ArrayList<>();
    private int select;    //进入的是那个博客
    private ImageLoader imageLoader = ImageLoader.getInstance();
    private DisplayImageOptions options;

    public NewsContentAdapter(Context context,int select) {this.select=select;
        inflater = LayoutInflater.from(context);
        imageLoader.init(ImageLoaderConfiguration.createDefault(context));
        selectPicture(select);
        }public void selectPicture(int select){switch (select){case 1:options = new DisplayImageOptions.Builder().showStubImage(R.drawable.images).showImageForEmptyUri(R.drawable.images).showImageOnFail(R.drawable.images).cacheInMemory().cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY).bitmapConfig(Bitmap.Config.RGB_565).displayer(new FadeInBitmapDisplayer(300)).build();
                    break;
                case 2:options = new DisplayImageOptions.Builder().showStubImage(R.drawable.cto).showImageForEmptyUri(R.drawable.cto).showImageOnFail(R.drawable.cto).cacheInMemory().cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY).bitmapConfig(Bitmap.Config.RGB_565).displayer(new FadeInBitmapDisplayer(300)).build();
                    break;
                case 3:options = new DisplayImageOptions.Builder().showStubImage(R.drawable.blog_house).showImageForEmptyUri(R.drawable.blog_house).showImageOnFail(R.drawable.blog_house).cacheInMemory().cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY).bitmapConfig(Bitmap.Config.RGB_565).displayer(new FadeInBitmapDisplayer(300)).build();
                    break;
                case 4:options = new DisplayImageOptions.Builder().showStubImage(R.drawable.iteye).showImageForEmptyUri(R.drawable.iteye).showImageOnFail(R.drawable.iteye).cacheInMemory().cacheOnDisc().imageScaleType(ImageScaleType.EXACTLY).bitmapConfig(Bitmap.Config.RGB_565).displayer(new FadeInBitmapDisplayer(300)).build();
                    break;
    }}public void addList(List<News> datas) {data.addAll(datas);
    }@Override
    public int getCount() {return data == null ? 0 : data.size();
    }@Override
    public Object getItem(int position) {return data.get(position);
    }@Override
    public long getItemId(int position) {return position;
    }@Override
    public int getItemViewType(int position) {switch (data.get(position).getType()) {case Constant.TITLE:return 0;
            case Constant.SUMMARY:return 1;
            case Constant.CONTENT:return 2;
            case Constant.IMG:return 3;
            case Constant.BOLD_TITLE:return 4;
            case Constant.PREV:return 5;
            case Constant.NEXT:return 6;
        }return -1;
    }@Override
    public int getViewTypeCount() {return 7;
    }@Override
    public boolean isEnabled(int position) {switch (data.get(position).getType()) {case Constant.IMG:return true;
            case Constant.PREV:return true;
            case Constant.NEXT:return true;
            default:return false;
        }}@Override
    public View getView(int position, View convertView, ViewGroup parent) {News news=data.get(position);   //获取当前数据项

        ViewHolder holder=null;
        if(convertView==null){holder=new ViewHolder();

            switch (news.getType()){case Constant.TITLE:convertView=inflater.inflate(R.layout.news_content_title_item,null);
                   holder.textView=(TextView)convertView.findViewById(R.id.text);
                break;
                case Constant.SUMMARY:convertView=inflater.inflate(R.layout.news_content_summary_item,null);
                    holder.textView=(TextView)convertView.findViewById(R.id.text);
                    break;
                case Constant.CONTENT:convertView=inflater.inflate(R.layout.news_content_item,null);
                    holder.textView=(TextView)convertView.findViewById(R.id.text);
                    break;
                case Constant.IMG:convertView=inflater.inflate(R.layout.news_content_img_item,null);
                    holder.imageView=(ImageView)convertView.findViewById(R.id.imageView);
                    break;
                case Constant.BOLD_TITLE:convertView=inflater.inflate(R.layout.news_content_bold_title_item,null);
                    holder.textView=(TextView)convertView.findViewById(R.id.text);
                    break;
                case Constant.PREV:convertView=inflater.inflate(R.layout.news_content_prev_item,null);
                    holder.textView=(TextView)convertView.findViewById(R.id.prev);
                    break;
                case Constant.NEXT:convertView=inflater.inflate(R.layout.news_content_next_item,null);
                    holder.textView=(TextView)convertView.findViewById(R.id.next);
                    break;
            }convertView.setTag(holder);
        }else {holder=(ViewHolder)convertView.getTag();
        }if (null != news){switch (news.getType()){case Constant.IMG:imageLoader.displayImage(news.getImageLink(), holder.imageView, options);
                    break;
                case Constant.TITLE:holder.textView.setText(news.getTitle());
                    break;
                case Constant.SUMMARY:holder.textView.setText(news.getSumary());
                    break;
                case Constant.CONTENT:if (select==1){holder.textView.setText("\u3000\u3000"+ Html.fromHtml(news.getContent()));
                    }else {holder.textView.setText("\u3000\u3000"+ news.getContent());
                    }break;
                case Constant.BOLD_TITLE:holder.textView.setText("\u3000\u3000"+Html.fromHtml(news.getContent()));
                case Constant.PREV:String prevTitle=news.getPrevPassage();
                    if(prevTitle==null) {holder.textView.setVisibility(View.GONE);
                    }else {holder.textView.setText("上一篇"+prevTitle);
                    }case Constant.NEXT:String nextTitle=news.getPrevPassage();
                    if(nextTitle==null) {holder.textView.setVisibility(View.GONE);
                    }else {holder.textView.setText("上一篇"+nextTitle);
                    }}}return convertView;
    }private final class ViewHolder{TextView textView;
        ImageView imageView;
    }
}

IT资讯---------查看文章相关推荐

  1. 怎么查看计算机一共多少文档,不打开Word文档如何查看文章有几页 -电脑资料

    关于这个命题,似乎有点悬了! 当我们面对一大堆文档的时候,如果想查看一下每一篇文档到底有多少页的时候? 平时您是不是这样做的呢?一篇文档一篇文档的打开,之后通过使用插入页码的方法在文档中插入页码,之后 ...

  2. 查看文章影响因子的插件_查询文献可实时显示影响因子与分区排名的2个强大浏览器插件...

    首先,看下我们普通的PubMed文献查找页面,是下图这样子的: 可是装了两个国产神器之后,文献的检索结果列表是下图这样的,可以实时查看文章的影响因子.研究领域的排名,以及全文下载链接.引文格式等. 而 ...

  3. 让科汛CMS在会员投稿成功后进入查看文章页面

    很多用户想实现让科汛CMS在会员投稿成功后进入查看文章页面 修改方法如下 打开以下文件/user/User_Post.asp 746行 改成 KS.Echo "<script>$ ...

  4. 我们喜欢技术、产品与创业相关的新闻、资讯和文章;我们喜欢真正有意思、有价值的内容;我们不求多,但求精。...

    1. 我们喜欢技术.产品与创业相关的新闻.资讯和文章,既欢迎新出来的东西,也欢迎历史文献. 2. 我们喜欢真正有意思.有价值的内容. 3. 我们不求多,但求精.这个世界里信息已经够泛滥的了. 4. 发 ...

  5. 在Word2016及以上版本中,如何统一查看文章全部的脚注内容?个别脚注被增删,脚注顺序错乱怎么办?从一个Word复制到另一个Word中后,原文中脚注序号的格式变大了如何改回正常?

    一.在Word2016及以上版本中统一查看文章全部的脚注内容 操作:视图--草稿视图--引用--显示备注 效果如下:  二.个别脚注被增删,脚注顺序错乱怎么办 操作:在上一步操作基础上,光标停在脚注区 ...

  6. 绕过某博客查看文章验证码,关注公众号得验证码

    之前也写过一篇,当时使用Burpsuite抓包,改包,有点杀鸡用牛刀了. 虽然我挺支持为知识那啥的,但是吧要我去关注公众号太麻烦了 绕过查看文章需要验证码 其实就是改一个返回的字段,既然后端也是改,那 ...

  7. 查看文章影响因子的插件_这个浏览器插件可以智能查询SCI论文被引情况

    在查询一篇SCI文章时,我们有时候需要知道他的被引情况,看看有哪些文章引用了它,有时也需要知道施引文献在其文章中是如何描述被引文献的. 查询SCI论文被引情况可以在Web of Science中实现, ...

  8. SEO:必须登录才能查看文章或者文章列表,实则也是阻挡蜘蛛

    做SEO的目的最终是考虑到转化赚钱上,很多网站为了盈利或者为了让用户注册,就设置了列表页或者文章页必须登录才能查看所有列表和更多的文章内容,这样做的目的看似是在增加的网站的注册量或者赢利点,但是作为蜘 ...

  9. 查看文章影响因子的插件_Scholarscope--在新版PubMed中实现基于影响因子的文献筛选...

    小编之前介绍过如何在Pubmed上直接显示杂志影响因子的方法,这个方法主要是依托Scholarscope插件,其实除了显示影响因子,这个插件还可以帮助大家根据影响因子筛选文献哦,操作也很简单,只要生成 ...

最新文章

  1. 1.matlab 中的axis tight,legend
  2. 这所211大学,迎来80后女科学家任副校长
  3. 家电 计算机和电讯领域 英语,网络通讯及计算机英语词汇.doc
  4. jmeter 逻辑控制器
  5. 1.4 满足和优化指标-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  6. java内部类外部类_Java内部类:如何在内部类中返回外部类对象
  7. servlet里面为什么有时候覆_为什么新来的经理强烈推荐?前后端分离知识,学到了...
  8. 第一阶段意见汇总以及改进
  9. 对tensorflow 的BatchNormalization的坑的理解与测试
  10. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_14_常用的函数式接口_Predicate接口中的默认方法or和negate...
  11. 硬盘的结构和介绍,硬盘MBR详细介绍(超详细彩图)
  12. 东拉西扯01世界的沧海桑田
  13. 【BLE】蓝牙Profile
  14. Salesforce Apex 触发器学习记录
  15. javaweb开发和j2ee区别
  16. 二进制枚举子集(总结+应用)
  17. Runc 容器初始化和容器逃逸
  18. 最新分布式训练深度学习框架
  19. Meth | Git 避免重复输入用户名和密码方法
  20. 软件测试之计算机基础

热门文章

  1. 【Android Gradle 插件】Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )
  2. 新能源汽车VCU/HCU,BMS和MCU仿真测试系统实验室
  3. python判断word页码
  4. 数学基础(二)——参数估计与矩阵运算基础
  5. android 接口回调全面,Android 回调机制--接口回调
  6. Flutter报错:Bad state: Stream has already been listened to.
  7. PHP气缸种类,【汽缸】【气缸】|× 【Q】√ - 校对标准:寻找权威依据 - Powered by phpwind...
  8. VSCode中调试flutter遇到Android licenses not accepted的错误提示
  9. pgp解密 java_Java PGP加密解密实例教程详细操作步骤
  10. 河北饶阳实现滹沱河南部一百平方公里地表水全覆盖