MainActivity
package com.example.yuekao1;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView text;
private ImageView image;
private int time=3;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (time>0){
time- -;
text.setText(time+"s");
handler.sendEmptyMessageDelayed(1,2000);
}else {
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
startActivity(intent);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去掉标题
setContentView(R.layout.activity_main);
//获取资源
text=findViewById(R.id.text);
image=findViewById(R.id.image);
//发消息
handler.sendEmptyMessageDelayed(1,2000);
}
}
Main2Activity
package com.example.yuekao1;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
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.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Window;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.example.yuekao1.fragments.Fragment1;
import com.example.yuekao1.fragments.Fragment2;
import com.example.yuekao1.fragments.Fragment3;
import java.util.ArrayList;
import java.util.List;
public class Main2Activity extends AppCompatActivity {
private DrawerLayout drawlayout;
private RadioGroup group;
private ViewPager viewPager;
private List<Fragment> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//获取资源
drawlayout=findViewById(R.id.drawlayout);
group=findViewById(R.id.group);
viewPager=findViewById(R.id.viewpager);
//设置侧拉监听
drawlayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View view, float v) {
}
@Override
public void onDrawerOpened(@NonNull View view) {
}
@Override
public void onDrawerClosed(@NonNull View view) {
Toast.makeText(Main2Activity.this,"我被关闭了",Toast.LENGTH_LONG).show();
}
@Override
public void onDrawerStateChanged(int i) {
}
});
list.add(new Fragment1());
list.add(new Fragment2());
list.add(new Fragment3());
//适配器
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.but1:
viewPager.setCurrentItem(0);
break;
case R.id.but2:
viewPager.setCurrentItem(1);
break;
case R.id.but3:
viewPager.setCurrentItem(2);
break;
}
}
});
}
}
Fragment1********
package com.example.yuekao1.fragments;
import android.content.Intent;
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 android.widget.Button;
import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.example.yuekao1.R;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import static com.andy.library.ChannelActivity.REQUEST_CODE;
import static com.andy.library.ChannelActivity.RESULT_JSON_KEY;
public class Fragment1 extends Fragment {
private TabLayout tabLayout;
private ViewPager pager;
private PagerAdapter pagerAdapter ;
private Button but;
private String jsonStr = "";
ArrayList<Fragment> list = new ArrayList<Fragment>();
private ArrayList<ChannelBean> channelBeanlist;
private View view;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment1,container,false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initVeiw();
initData();
}
private void initVeiw() {
tabLayout=view.findViewById(R.id.tablayout);
pager=view.findViewById(R.id.pager);
but=view.findViewById(R.id.but);
}
private void initData() {
pagerAdapter=new PagerAdapter(getChildFragmentManager());
pager.setAdapter( pagerAdapter);
channelBeanlist=new ArrayList<>();
channelBeanlist.add(new ChannelBean("标题1",true));
channelBeanlist.add(new ChannelBean("标题2",true));
channelBeanlist.add(new ChannelBean("标题3",true));
channelBeanlist.add(new ChannelBean("标题4",false));
channelBeanlist.add(new ChannelBean("标题5",false));
channelBeanlist.add(new ChannelBean("标题6",false));
pagerAdapter.setData(isSelectPD(channelBeanlist));
//联动
tabLayout.setupWithViewPager(pager);
but.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Gson gson = new Gson();
String jsonArray = gson.toJson(channelBeanlist);
Intent intent = new Intent(getActivity(), ChannelActivity.class);
intent.putExtra(RESULT_JSON_KEY, jsonArray);
startActivityForResult(intent, REQUEST_CODE);
}
});
}
public List<ChannelBean> isSelectPD(List<ChannelBean> list){
List<ChannelBean> isok = new ArrayList<>();
for (int i = 0;i<list.size();i++){
if(list.get(i).isSelect()){
isok.add(list.get(i));
}
}
return isok;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == ChannelActivity.REQUEST_CODE && resultCode == ChannelActivity.RESULT_CODE){
//获取tab要展示的内容
jsonStr = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);
//清空之前的栏目
tabLayout.removeAllTabs();
Type type=new TypeToken<ArrayList<ChannelBean>>(){}.getType();
channelBeanlist = new Gson().fromJson(jsonStr,type);
//传给适配器
pagerAdapter.setData(isSelectPD(channelBeanlist));
tabLayout.setupWithViewPager(pager);
}
}
private class PagerAdapter extends FragmentPagerAdapter{
private List<ChannelBean> list = new ArrayList<>();
public PagerAdapter(FragmentManager fm) {
super(fm);
}
public void setData(List<ChannelBean> list) {
this.list = list;
notifyDataSetChanged();
}
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return new Fragment1_0();
case 1:
return new Fragment1_1();
case 2:
return new Fragment1_2();
default:
return new Fragment1_2();
}
}
@Override
public int getCount() {
return list.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return list.get(position).getName();
}
}
}
Fragment1_0*****
package com.example.yuekao1.fragments;
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.example.yuekao1.R;
import com.example.yuekao1.adpter.MyAdapter;
import com.example.yuekao1.bean.MyBean;
import com.example.yuekao1.db.Dao;
import com.example.yuekao1.utils.NetWork;
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;
public class Fragment1_0 extends Fragment {
private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private PullToRefreshListView pv;
private int page;
List<MyBean.DataBean> list = new ArrayList<>();
private MyAdapter adapter;
private Dao dao;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment1_0, container, false);
pv = view.findViewById(R.id.pv);
dao = new Dao(getActivity());
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//初始化
initpv();
//请求网络
requstNetDtata(page);
}
private void requstNetDtata(int page) {
//调用网络判断
boolean connection = NetWork.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 = new Gson();
MyBean myBean = gson.fromJson(jsonData, MyBean.class);
List<MyBean.DataBean> data = myBean.getData();
list.addAll(data);
setLvAdapter();
//关闭上下拉刷新
pv.onRefreshComplete();
}
}
}
private void initpv() {
//1设置模式 支持上拉加载 下拉刷新
pv.setMode(PullToRefreshBase.Mode.BOTH);
//监听
pv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
list.clear();
requstNetDtata(page);
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
page++;
requstNetDtata(page);
}
});
}
//异步请求
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 = stramTostring(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();
MyBean myBean = gson.fromJson(s, MyBean.class);
List<MyBean.DataBean> data = myBean.getData();
list.addAll(data);
setLvAdapter();
//关闭上下拉刷新
pv.onRefreshComplete();
}
}
public String stramTostring(InputStream stream) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String timp;
try {
while ((timp = reader.readLine()) != null) {
stringBuilder.append(timp);
}
} catch (IOException e) {
e.printStackTrace();
}
return stringBuilder.toString();
}
public void setLvAdapter() {
adapter = new MyAdapter(list, getActivity());
pv.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
}
Fragment1_1 ******
package com.example.yuekao1.fragments;
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.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.bwie.xlistviewlibrary.view.XListView;
import com.example.yuekao1.R;
import com.example.yuekao1.adpter.MyAdapter;
import com.example.yuekao1.bean.MyBean;
import com.example.yuekao1.db.Dao;
import com.example.yuekao1.utils.NetWork;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
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;
public class Fragment1_1 extends Fragment {
private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private XListView xListView;
private int page;
List<MyBean.DataBean> list = new ArrayList<>();
private MAdapter mAdapter;
private Dao dao;
private ImageLoader imageLoaderInstances;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment1_1,container,false);
xListView=view.findViewById(R.id.xlv);
dao=new Dao(getActivity());
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// 开启上拉加载更多功能;
xListView.setPullLoadEnable(true);
imageLoaderInstances = ImageLoader.getInstance();
//配置适配器
mAdapter = new MAdapter();
xListView.setAdapter(this.mAdapter);
//请求网络数据
initData(page);
//实现监听设置上下拉的逻辑
xListView.setXListViewListener(new XListView.IXListViewListener() {
//下拉刷新
@Override
public void onRefresh() {
page = 0;
list.clear();
initData(page);
}
//上拉加载更多;
@Override
public void onLoadMore() {
page++;
initData(page);
}
});
}
//请求网络方法
private void initData(int page) {
boolean connection = NetWork.isConnection(getActivity());
if (connection){//有网
String urls = url + page;
new MAsycnTask().execute(urls);
}else { //没有网
Toast.makeText(getActivity(), "请检查网络再试", Toast.LENGTH_LONG).show();
//根据url地址。从数据库中获取数据
String jsonDtata = dao.queryData(url);
if(!"".equals(jsonDtata)){
Gson gson = new Gson();
MyBean goods = gson.fromJson(jsonDtata, MyBean.class);
List<MyBean.DataBean> data = goods.getData();
list.addAll(data);
mAdapter.notifyDataSetChanged();
}
}
}
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 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:
ViewHodler hodler=new ViewHodler();
if (convertView == null) {
convertView = View.inflate(getActivity(), R.layout.list2, null);
hodler.imageView = convertView.findViewById(R.id.imageView);
hodler.textView = convertView.findViewById(R.id.textView);
convertView.setTag(hodler);
} else {
hodler = (ViewHodler) convertView.getTag();
}
hodler.textView.setText(list.get(position).getNews_title());
imageLoaderInstances.displayImage(list.get(position).getPic_url(), hodler.imageView);
/*
DisplayImageOptions options = new DisplayImageOptions.Builder()
//显示效果:圆形
.displayer(new CircleBitmapDisplayer())
//圆角
.displayer(new RoundedBitmapDisplayer(90))
.build();
imageLoaderInstances.displayImage( list .get(position).getPic_url(), hodler.imageView,options);
**/
break;
case 1:
ViewHodler1 hodler1=new ViewHodler1()
if (convertView == null) {
convertView = View.inflate(getActivity(), R.layout.list3, null);
hodler1.textView1 = convertView.findViewById(R.id.textView1);
convertView.setTag(hodler1);
} else {
hodler1 = (ViewHodler1) convertView.getTag();
}
hodler1.textView1.setText(list.get(position).getNews_title());
break;
}
return convertView;
}
}
class ViewHodler {
ImageView imageView;
TextView textView;
}
class ViewHodler1 {
TextView textView1;
}
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
dao.add(s,url);
Gson gson = new Gson();
MyBean goods = gson.fromJson(s, MyBean.class);
List<MyBean.DataBean> data = goods.getData();
list.addAll(data);
mAdapter.notifyDataSetChanged();
xListView.setRefreshTime("刚刚刷新");
xListView.stopRefresh();//隐藏头
xListView.stopLoadMore();//隐藏脚
}
}
}
Fragment1_2无线播
package com.example.yuekao1.fragments;
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.example.yuekao1.R;
import com.recker.flybanner.FlyBanner;
import java.util.ArrayList;
import java.util.List;
public class Fragment1_2 extends Fragment {
private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private FlyBanner flyBanner;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment1_2,container,false);
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/20/370858_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/20/868385_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/20/768695_230x162_0.jpg");
list.add("http://f.expoon.com/sub/news/2016/01/20/512947_230x162_0.jpg");
flyBanner.setImagesUrl(list);
}
}
Fragment2
package com.example.yuekao1.fragments;
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.example.yuekao1.R;
public class Fragment2 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment2,container,false);
return view;
}
}
Fragment3
package com.example.yuekao1.fragments;
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.example.yuekao1.R;
public class Fragment3 extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment3,container,false);
return view;
}
}
网络工具类
package com.example.yuekao1.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetWork {
public static boolean isConnection(Context context) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeInfo = connMgr.getActiveNetworkInfo();
if (activeInfo != null && activeInfo.isConnected()) {
return true;
} else {
return false;
}
}
}
MApp
package com.example.yuekao1;
import android.app.Application;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
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();
/***
//配置圆角
DisplayImageOptions options = new DisplayImageOptions.Builder().build();
configuration = new ImageLoaderConfiguration.Builder(this)
.diskCacheSize(50*1024*1024)
.build();
**/
ImageLoader.getInstance().init(configuration);
}
}
数据库
package com.example.yuekao1.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyHlper extends SQLiteOpenHelper
{
public MyHlper(Context context) {
super(context, "uesr.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table stu(id integer primary key autoincrement,url text,jsonData text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Dao层
package com.example.yuekao1.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class Dao {
private SQLiteDatabase database;
public Dao(Context context){
MyHlper myHlper = new MyHlper(context);
database=myHlper.getWritableDatabase();
}
//插入的方法
public void add(String url, String data){
//先删除相同url地址的数据
database.delete("stu","url=?",new String[]{url});
ContentValues values = new ContentValues();
values.put("url", url);//k值一定是数据库的字段值
values.put("jsonData", data);
database.insert("stu", null, values);
}
//查询
public String queryData(String url) {
String data="";
Cursor cursor = database.query("stu", null, "url=?", new String[]{url}, null, null, null);
while (cursor.moveToNext()){
//获得jsonData字段的内容
data= cursor.getString(cursor.getColumnIndex("jsonData"));
}
return data;
}
}
bean类
package com.example.yuekao1.bean;
import java.util.List;
public class MyBean {
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 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;
}
}
}
适配器
package com.example.yuekao1.adpter;
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.example.yuekao1.R;
import com.example.yuekao1.bean.MyBean;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
public class MyAdapter extends BaseAdapter {
private ImageLoader imageLoaderInstances = ImageLoader.getInstance();
;
private List<MyBean.DataBean> list;
private Context context;
public MyAdapter(List<MyBean.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public int getItemViewType(int position) {
return position%2;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int itemViewType = getItemViewType(position);
switch (itemViewType){
case 0:
ViewHoder hoder=new ViewHoder();
if (convertView==null){
convertView=View.inflate(context, R.layout.list_main,null);
hoder.imag=convertView.findViewById(R.id.imag);
hoder.text=convertView.findViewById(R.id.text);
convertView.setTag(hoder);
}else {
hoder=(ViewHoder)convertView.getTag();
}
hoder.text.setText(list.get(position).getNews_title());
imageLoaderInstances.displayImage(list.get(position).getPic_url(), hoder.imag);
/**
DisplayImageOptions options = new DisplayImageOptions.Builder()
//显示效果:圆形
.displayer(new CircleBitmapDisplayer())
//圆角
.displayer(new RoundedBitmapDisplayer(90))
.build();
imageLoaderInstances.displayImage( list .get(position).getPic_url(), hoder.imag,options);
*/
break;
case 1:
ViewHoder1 hoder1=new ViewHoder1();
if (convertView==null){
convertView=View.inflate(context, R.layout.list1_main,null);
hoder1.text1=convertView.findViewById(R.id.text1);
convertView.setTag(hoder1);
}else {
hoder1=(ViewHoder1)convertView.getTag();
}
hoder1.text1.setText(list.get(position).getNews_title());
break;
}
return convertView;
}
class ViewHoder{
ImageView imag;
TextView text;
}
class ViewHoder1{
TextView text1;
}
}
MainActivity布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:textSize="20sp"
android:textColor="#f00"
android:text="3s" />
<ImageView
android:id="@+id/image"
android:layout_width="600dp"
android:src="@mipmap/ic_hhh"
android:layout_centerVertical="true"
android:layout_marginLeft="80dp"
android:layout_marginRight="80dp"
android:layout_height="200dp" />
</RelativeLayout>
Main2Activity布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawlayout"
tools:context=".Main2Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start"
>
<ImageView
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_gravity="center"
android:src="@mipmap/ic_hhh"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:layout_gravity="center"
android:textColor="#f00"
android:textSize="25sp"
android:text="我在北京"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6"
></android.support.v4.view.ViewPager>
<RadioGroup
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<RadioButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/but1"
android:layout_weight="1"
android:gravity="center"
android:button="@null"
android:text="首页"/>
<RadioButton
android:id="@+id/but2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="功能" />
<RadioButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/but3"
android:layout_weight="1"
android:gravity="center"
android:button="@null"
android:text="我的"/>
</RadioGroup>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
fragment1布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<Button
android:id="@+id/but"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+"/>
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
></android.support.v4.view.ViewPager>
</LinearLayout>
fragment1_0布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
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>
</LinearLayout>
fragment1_1布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
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>
</LinearLayout>
fragment1_2布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="#f0f"
android:layout_height="match_parent">
<com.recker.flybanner.FlyBanner
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="300dp">
</com.recker.flybanner.FlyBanner>
</LinearLayout>
build.gradle project
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
//添加一个远程仓库;
maven {url "https://jitpack.io"}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
清单文件 权限***
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"/>
依赖
``
implementation 'com.android.support:design:28.0.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.github.userswlwork:pull-to-refresh:1.0.0'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation project(':xlistviewlibrary1')
implementation 'com.recker.flybanner:flybanner:1.3'
implementation 'com.github.andyoom:draggrid:v1.0.1'