预备知识:关于Jsoup,这个问题百度就能为你 解决:
Jsoup
先看效果图:
这是 2015/09/24 18:50左右获取来自腾讯新闻的一些新闻
这是 2015/09/24 18:50左右获取来自凤凰新闻的一些新闻
请看代码:
这是 获取数据的代码:
package com.example.cywtest1;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.SimpleAdapter.ViewBinder;
@SuppressLint("NewApi")
public class MyTab1 extends Fragment {
private View view;
private ViewPager viewPager;
private List lists = new ArrayList();
private ViewPagerAdapter adapter;
private List webUrl;
private static boolean isInit = false;
private ListView lv1;
private ListView lv2;
private ListView lv3;
private Button btn1;
private Button btn2;
private Button btn3;
private List
前台布局代码:
这是对于Fragment的布局,只用了一个ViewPager:
mytab1.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager_firstpage_todaytopline"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
LinearLayout>
这是ViewPager每一个Pager里面的一个列表的一个项的布局(一个列表项对应一条新闻):
rlist.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textSize="14dp" />
<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="11dp" />
LinearLayout>
LinearLayout>
注意事项:
1、访问网页的代码记得写在异步任务类 AsyncTask 里面,或者自己 new
一个Thread,这是Android安全机制所考虑的,也是Android开发的常识。
2、网上说对于Jsoup包的使用,需要在工程根目录下new 一个名为 “libs”的 folder 将Jsoup包添加进去,然后 build
path ,反正我就是这样做的,读者有时间可以试一试是否必须是 这样添加包。下面给出我的工程结构图:
3、这是本人自己当时遇到的一个问题。我当时不知道什么时候导入了两个 Jsoup包,后来程序就一直出错(是运行时出错,好像提示是
无法找到类和资源什么),我还傻乎乎花时间苦想了两天~~~~。当然这不仅仅是这个新闻客户端的问题了,以后大家如果出现找不到资源类似的错误,可以看看自己是不是导错包了
(也许原因就是这么简单)