需要导入的依赖:
implementation ‘com.android.support:design:28+’
implementation ‘com.github.userswlwork:pull-to-refresh:1.0.0’
compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
implementation ‘com.google.code.gson:gson:2.8.5’
implementation project(’:xlistviewlibrary’)
implementation ‘com.recker.flybanner:flybanner:1.3’
**main.xml布局文件 **
<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
android:background="@mipmap/a"
tools:context=".MainActivity">
<TextView
android:id="@+id/mTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="48dp"
android:text="5秒"
android:textColor="#fff"
android:textSize="30sp" />
**MainActivity.java**
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private int time =5;
private Handler handler =new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
time–;
textView.setText(time+“秒”);
if (time==0){
startActivity(new Intent(MainActivity.this,TwoActivity.class));
finish();
handler.removeMessages(0);
}
handler.sendEmptyMessageDelayed(0,1000);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.mTime);
handler.sendEmptyMessageDelayed(0,1000);
}
}
activity_two.xml布局文件
<android.support.v4.widget.DrawerLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:id="@+id/drawer"
android:orientation=“vertical”
android:layout_height=“match_parent”
tools:context=".TwoActivity">
<android.support.v4.view.ViewPager
android:id="@+id/viewPage"
android:layout_weight="7"
android:layout_width="match_parent"
android:layout_height="0dp">
</android.support.v4.view.ViewPager>
<RadioGroup
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1">
<RadioButton
android:id="@+id/btu1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:text="首页"
android:background="@drawable/selector"
android:gravity="center"
android:padding="10dp"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/btu2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:text="其他"
android:background="@drawable/selector"
android:gravity="center"
android:padding="10dp"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/btu3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:button="@null"
android:text="我的"
android:background="@drawable/selector"
android:gravity="center"
android:padding="10dp"
android:layout_weight="1"/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_gravity="start"
android:background="@mipmap/m"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageview"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@mipmap/ic_launcher"/>
<ListView
android:id="@+id/list_text"
android:layout_width="150dp"
android:layout_height="match_parent"
android:background="#00f">
</ListView>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
TwoActivity.java
package bawei.com.yuekaodemo1;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
import bawei.com.yuekaodemo1.fragment.FragmnetOne;
import bawei.com.yuekaodemo1.fragment.FragmnetThree;
import bawei.com.yuekaodemo1.fragment.FragmnetTwo;
public class TwoActivity extends AppCompatActivity {
private ViewPager viewPager;
private RadioGroup group;
private ArrayList list = new ArrayList<>();
private DrawerLayout drawerLayout;
private ListView listView;
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
drawerLayout = findViewById(R.id.drawer);
listView = findViewById(R.id.list_text);
imageView = findViewById(R.id.imageview);
viewPager = findViewById(R.id.viewPage);
group = findViewById(R.id.group);
group.check(group.getChildAt(0).getId());
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View view, float v) {
}
@Override
public void onDrawerOpened(@NonNull View view) {
Toast.makeText(TwoActivity.this,"已被打开",Toast.LENGTH_LONG).show();
}
@Override
public void onDrawerClosed(@NonNull View view) {
Toast.makeText(TwoActivity.this,"已被关闭",Toast.LENGTH_LONG).show();
}
@Override
public void onDrawerStateChanged(int i) {
}
});
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawerLayout.closeDrawer(Gravity.START);
}
});
list.add(new FragmnetOne());
list.add(new FragmnetTwo());
list.add(new FragmnetThree());
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return list.size();
}
});
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.btu1:
viewPager.setCurrentItem(0);
break;
case R.id.btu2:
viewPager.setCurrentItem(1);
break;
case R.id.btu3:
viewPager.setCurrentItem(2);
break;
}
}
});
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
group.check(group.getChildAt(i).getId());
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
final List<String> list_text = new ArrayList<>();
list_text.add("首页");
list_text.add("我的");
list_text.add("视频");
list_text.add("新闻");
list_text.add("热点");
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list_text));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
viewPager.setCurrentItem(position);
drawerLayout.closeDrawers();
}
});
}
}
NetWord.java
package bawei.com.yuekaodemo1.netword;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetWord {
public static boolean isconnection(Context context){
if (context!=null){
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null) {
return networkInfo.isConnected();
}
}
return false;
}
}
Mapp.java图片框架
package bawei.com.yuekaodemo1.app;
import android.app.Application;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import java.io.File;
public class Mapp extends Application {
File file = new File(Environment.getExternalStorageDirectory()+"/"+"image");
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
.diskCache(new UnlimitedDiskCache(file))
.build();
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.init(configuration);
// ImageLoader.getInstance().init(configuration);
}
}
MySQlite创建数据库
package bawei.com.yuekaodemo1.sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySQlite extends SQLiteOpenHelper {
public MySQlite(Context context) {
super(context, “User.db”, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table user(id integer primary key autoincrement," +
"url text," +
"jsonData text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
userDao.java
package bawei.com.yuekaodemo1.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import bawei.com.yuekaodemo1.sqlite.MySQlite;
public class UserDao {
private SQLiteDatabase database;
public UserDao(Context context){
MySQlite mySQlite = new MySQlite(context);
database = mySQlite.getWritableDatabase();
}
//插入的方法
public void add(String url, String data) {
//先删除相同url地址的数据
database.delete("user","url=?",new String[]{url});
ContentValues values = new ContentValues();
values.put("url", url);//k值一定是数据库的字段值
values.put("jsonData", data);
//返回行号
database.insert("user", null, values);
}
//查询
public String queryData(String url){
String data="";
Cursor cursor = database.query("user", null, "url=?", new String[]{url}, null, null, null);
while (cursor.moveToNext()){
//获得jsonData字段的内容
data= cursor.getString(cursor.getColumnIndex("jsonData"));
}
return data;
}
}
bean.java
package bawei.com.yuekaodemo1.bean;
import java.util.List;
public class Goods {
private int status;
private String info;
private List<DataBean> data;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String news_id;
private String news_title;
private String news_summary;
private String pic_url;
public DataBean(String data, Object o) {
}
public String getNews_id() {
return news_id;
}
public void setNews_id(String news_id) {
this.news_id = news_id;
}
public String getNews_title() {
return news_title;
}
public void setNews_title(String news_title) {
this.news_title = news_title;
}
public String getNews_summary() {
return news_summary;
}
public void setNews_summary(String news_summary) {
this.news_summary = news_summary;
}
public String getPic_url() {
return pic_url;
}
public void setPic_url(String pic_url) {
this.pic_url = pic_url;
}
}
}
MyAdapter适配器
package bawei.com.yuekaodemo1.adapter;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
import bawei.com.yuekaodemo1.R;
import bawei.com.yuekaodemo1.bean.Goods;
public class MyAdapter extends BaseAdapter {
private ImageLoader imageLoader = ImageLoader.getInstance();
private List<Goods.DataBean> list ;
private Context context;
public MyAdapter(List<Goods.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return position%2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int itemViewType = getItemViewType(position);
switch (itemViewType){
case 0:
ViewHolder1 viewHolder1 = new ViewHolder1();
if (convertView == null){
convertView = View.inflate(context ,R.layout.mybase1,null);
viewHolder1.textView =convertView.findViewById(R.id.textView);
viewHolder1.imageView = convertView.findViewById(R.id.imageView);
convertView.setTag(viewHolder1);
}else {
viewHolder1= (ViewHolder1) convertView.getTag();
}
viewHolder1.textView.setText(list.get(position).getNews_title());
imageLoader.displayImage(list.get(position).getPic_url(),viewHolder1.imageView);
break;
case 1:
ViewHolder2 viewHolder2 = new ViewHolder2();
if(convertView == null){
convertView = View.inflate(context,R.layout.mybase2,null);
viewHolder2.tv1 = convertView.findViewById(R.id.tv1);
convertView.setTag(viewHolder2);
}else{
viewHolder2 = (ViewHolder2) convertView.getTag();
}
viewHolder2.tv1.setText(list.get(position).getNews_title());
break;
}
return convertView;
}
class ViewHolder1{
ImageView imageView;
TextView textView;
}
class ViewHolder2{
TextView tv1;
}
}
mybase1.xml布局文件
LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<ImageView
android:id="@+id/imageView"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/textView"
android:textColor="@color/colorAccent"
android:textSize="22dip"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1111111111111"/>
**mybase2.xm布局文件l**
LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
TextView
android:id="@+id/tv1"
android:ellipsize=“marquee”
android:focusable=“true”
android:focusableInTouchMode=“true”
android:singleLine=“true”
android:layout_width=“wrap_content”
android:textColor="#fff"
android:textSize=“26sp”
android:layout_height=“wrap_content” />
FragmnetOne.java
package bawei.com.yuekaodemo1.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import bawei.com.yuekaodemo1.R;
public class FragmnetOne extends Fragment {
private TabLayout tabLayout;
private ViewPager viewPager;
private MpagerAdapter mpagerAdapter;
ArrayList list =new ArrayList();
ArrayList titlelist = new ArrayList();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentone, container, false);
tabLayout = view.findViewById(R.id.tablayout);
viewPager = view.findViewById(R.id.page);
initData();
MpagerAdapter mpagerAdapter = new MpagerAdapter(getChildFragmentManager());
viewPager.setAdapter(mpagerAdapter);
tabLayout.setupWithViewPager(viewPager);
return view;
}
private void initData() {
for (int i=0;i<3;i++){
list.add(new Fragmnet1());
list.add(new Fragmnet2());
list.add(new Fragmnet3());
titlelist.add("主题"+i);
}
}
private class MpagerAdapter extends FragmentPagerAdapter {
public MpagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return list.get(i);
}
@Override
public int getCount() {
return 3;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titlelist.get(position);
}
}
}
fragmentone.xml
?xml version=“1.0” encoding=“utf-8”?>
LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:background="@mipmap/b"
android:orientation=“vertical”
android:layout_height=“match_parent”>
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/page"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</android.support.v4.view.ViewPager>
**fragmenttwo.xml**
LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:background="@mipmap/c"
android:layout_height=“match_parent”>
<com.recker.flybanner.FlyBanner
android:id="@+id/banner"
android:layout_width=“match_parent”
android:layout_height=“450dp”>
</com.recker.flybanner.FlyBanner>
**FragmnetTwo.java**
package bawei.com.yuekaodemo1.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.recker.flybanner.FlyBanner;
import java.util.ArrayList;
import java.util.List;
import bawei.com.yuekaodemo1.R;
public class FragmnetTwo extends Fragment {
private FlyBanner flyBanner;
//有地址是为了得到地址里面的图片地址(使用HiJson查看)
private String path = “http://api.expoon.com/AppNews/getNewsList/type/1/p/1”;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmenttwo, container, false);
//获取资源ID
flyBanner = view.findViewById(R.id.banner);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//网络的
List<String> list=new ArrayList<>();
list.add("http://f.expoon.com/sub/news/2016/01/21/887844_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/21/580828_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/21/745921_230x162_0.jpg");
flyBanner.setImagesUrl(list);
//本地图片
List<Integer> lists = new ArrayList<>();
lists.add(R.mipmap.b);
lists.add(R.mipmap.c);
lists.add(R.mipmap.d);
flyBanner.setImages(lists);
}
}
fragmentthree.xml
RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:background="@mipmap/d"
android:layout_height=“match_parent”
/RelativeLayout>
FragmnetThree.java
package bawei.com.yuekaodemo1.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import bawei.com.yuekaodemo1.R;
public class FragmnetThree extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmentthree, container, false);
return view;
}
}
fragment1.xml
LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:background="@mipmap/m"
android:layout_height=“match_parent”>
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/pv"
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
</com.handmark.pulltorefresh.library.PullToRefreshListView>
**Fragmnet1.java**
package bawei.com.yuekaodemo1.fragment;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import bawei.com.yuekaodemo1.R;
import bawei.com.yuekaodemo1.adapter.MyAdapter;
import bawei.com.yuekaodemo1.bean.Goods;
import bawei.com.yuekaodemo1.dao.UserDao;
import bawei.com.yuekaodemo1.netword.NetWord;
public class Fragmnet1 extends Fragment {
private String url =“http://api.expoon.com/AppNews/getNewsList/type/1/p/1”;
private PullToRefreshListView pullToRefreshListView;
private int page;
List<Goods.DataBean> list = new ArrayList<>();
private UserDao dao;
private MyAdapter myAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1, container, false);
dao = new UserDao(getActivity());
pullToRefreshListView = view.findViewById(R.id.pv);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//初始化
initpv();
//请求网络
data(page);
}
private void data(int page) {
//调用网络判断
boolean connection = NetWord.isconnection(getActivity());
if(connection){//有网
String urls=url+page;
new MyTask().execute(urls);
}else {
//没有网
Toast.makeText(getActivity(),"请检查网络再试",Toast.LENGTH_LONG).show();
//根据url地址。从数据库中获取数据
String jsonData = dao.queryData(url);//调取数据库查询的方法
if (!"".equals(jsonData)){
//解析gson
Gson gson=new Gson();
Goods myBean = gson.fromJson(jsonData, Goods.class);
List<Goods.DataBean> data = myBean.getData();
list.addAll(data);
getAdapter();
//关闭上下拉刷新
pullToRefreshListView.onRefreshComplete();
}
}
}
class MyTask extends AsyncTask<String ,Void,String> {
@Override
protected String doInBackground(String... strings) {
String str="";
try {
URL url=new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setReadTimeout(1000);
urlConnection.setConnectTimeout(1000);
urlConnection.setRequestMethod("GET");
if(urlConnection.getResponseCode()==200){
InputStream inputStream = urlConnection.getInputStream();
str = getdata(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//将请求下来的json数据缓存在数据库中
dao.add(url,s);
Gson gson=new Gson();
Goods myBean = gson.fromJson(s, Goods.class);
List<Goods.DataBean> data = myBean.getData();
list.addAll(data);
getAdapter();
//关闭上下拉刷新
pullToRefreshListView.onRefreshComplete();
}
}
private void initpv() {
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
list.clear();
data(page);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page++;
data(page);
}
});
}
public void getAdapter(){
myAdapter= new MyAdapter(list,getActivity());
pullToRefreshListView.setAdapter(myAdapter);
myAdapter.notifyDataSetChanged();
}
public String getdata(InputStream stream){
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String tamp ;
try {
while ((tamp=reader.readLine())!=null){
stringBuilder.append(tamp);
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
}
fragment2.xml
RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:background="@mipmap/b"
android:layout_height=“match_parent”>
<com.bwie.xlistviewlibrary.view.XListView
android:id="@+id/xlv"
android:layout_width=“match_parent”
android:layout_height=“match_parent”
>
</com.bwie.xlistviewlibrary.view.XListView>
**Fragmnet2.java**
package bawei.com.yuekaodemo1.fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.bwie.xlistviewlibrary.view.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import bawei.com.yuekaodemo1.R;
import bawei.com.yuekaodemo1.bean.Goods;
import bawei.com.yuekaodemo1.dao.UserDao;
import bawei.com.yuekaodemo1.netword.NetWord;
public class Fragmnet2 extends Fragment {
String url = “http://api.expoon.com/AppNews/getNewsList/type/1/p/1”;
int page;
private XListView xListView;
List<Goods.DataBean> list = new ArrayList<>(); //大集合
private MAdapter mAdapter;
private ImageLoader imageLoaderInstances;
private UserDao dao;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment2, container, false);
xListView = view.findViewById(R.id.xlv);
dao = new UserDao(getActivity());
xListView.setPullLoadEnable(true);
imageLoaderInstances = ImageLoader.getInstance();
mAdapter = new MAdapter();
xListView.setAdapter(mAdapter);
initData(page); //请求网络数据
//设置上下拉的逻辑
xListView.setXListViewListener(new XListView.IXListViewListener() {
//下拉刷新
@Override
public void onRefresh() {
page = 0;
initData(page);
}
//上拉加载更多;
@Override
public void onLoadMore() {
page++;
initData(page);
}
});
return view;
}
private void initData(int page) {
// String mUrl = baseUrl + page;
// new MAsycnTask().execute(mUrl);
//调用网络判断
boolean connection = NetWord.isconnection(getActivity());
if(connection){//有网
String urls=url+page;
new MAsycnTask().execute(urls);
}else {
//没有网
Toast.makeText(getActivity(),“请检查网络再试”,Toast.LENGTH_LONG).show();
//根据url地址。从数据库中获取数据
String jsonData = dao.queryData(url);//调取数据库查询的方法
if (!"".equals(jsonData)){
//解析gson
Gson gson=new Gson();
Goods myBean = gson.fromJson(jsonData, Goods.class);
List<Goods.DataBean> data = myBean.getData();
list.addAll(data);
}
}
}
private class MAdapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View viewItem = View.inflate(getActivity(), R.layout.mybase1, null);
TextView textView = (TextView) viewItem.findViewById(R.id.textView);
ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);
textView.setText(list.get(i).getNews_title());
imageLoaderInstances.displayImage(list.get(i).getPic_url(), imageView);
return viewItem;
}
}
class MAsycnTask extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... strings) {
return NetWordUtils.getNetjson(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Goods goods = gson.fromJson(s, Goods.class);
List<Goods.DataBean> data = goods.getData();
list.addAll(data);
mAdapter.notifyDataSetChanged();
uiComplete();//让刷新头和刷新底部隐藏;
}
}
private void uiComplete() {
xListView.setRefreshTime("刚刚");
xListView.stopRefresh();//隐藏刷新头部
xListView.stopLoadMore();//隐藏刷新脚部
}
}
fragment3.xml
LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:background="@mipmap/d"
android:layout_height=“match_parent”>
<com.recker.flybanner.FlyBanner
android:id="@+id/banner"
android:layout_width=“match_parent”
android:layout_height=“250dp”>
</com.recker.flybanner.FlyBanner>
**Fragmnet3.java**
package bawei.com.yuekaodemo1.fragment;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.recker.flybanner.FlyBanner;
import java.util.ArrayList;
import java.util.List;
import bawei.com.yuekaodemo1.R;
public class Fragmnet3 extends Fragment {
private FlyBanner flyBanner;
//有地址是为了得到地址里面的图片地址(使用HiJson查看)
private String path = “http://api.expoon.com/AppNews/getNewsList/type/1/p/1”;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment3, container, false);
//获取资源ID
flyBanner = view.findViewById(R.id.banner);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//网络的
List<String> list=new ArrayList<>();
list.add("http://f.expoon.com/sub/news/2016/01/19/650175_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/21/580828_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/21/745921_230x162_0.jpg");
flyBanner.setImagesUrl(list);
//本地图片
// List lists = new ArrayList<>();
// lists.add(R.mipmap.b);
// lists.add(R.mipmap.c);
// lists.add(R.mipmap.d);
// flyBanner.setImages(lists);
}
}
需要加入的权限
uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”
uses-uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE”>
uses-permission android:name=“android.permission.INTERNET”>
uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE” />