TabLayout+viewpage+listView+PullTORefresh(viewpage联动listview上拉下拉)
2017-09-19 09:23
399 查看
package bawe.day0918zhoukaosan;
import android.app.Application;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
public class App extends Application {
@Override
public void onCreate() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
//设置图片在下载期间显示的图片
.showImageOnLoading(R.mipmap.ic_arrow_down)
.displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true)
//设置下载的图片是否缓存在内存中
.cacheInMemory(true).build();
ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(
this).defaultDisplayImageOptions(options).threadPoolSize(5)
.build();
ImageLoader.getInstance().init(configs);
super.onCreate();
}
}
===========================================
package bawe.day0918zhoukaosan;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private TabLayout tab;
private ViewPager pa;
private List<String> list=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate
4000
(savedInstanceState);
setContentView(R.layout.activity_main);
//查找控件
tab = (TabLayout) findViewById(R.id.tab);
pa = (ViewPager) findViewById(R.id.pager);
//福利、Android、iOS、休息视频、拓展资源、前端、all
list.add("福利");
list.add("Android");
list.add("iOS");
list.add("休息视频");
list.add("拓展资源");
list.add("前端");
list.add("all");
//tablayout和viewpager关联
tab.setupWithViewPager(pa);
//设置viewpager适配器
pa.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
//重写这个方法,将设置每个Tab的标题
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
@Override
public Fragment getItem(int position) {
//一般我们在这个位置对比一下标题是什么,,,然后返回对应的fragment
//初始化fragment 对应position有多少,fragment有多少
NewFragment newFragment = new NewFragment();
Bundle bundle = new Bundle();
//福利、Android、iOS、休息视频、拓展资源、前端、all
if (list.get(position).equals("福利")){
bundle.putString("name","福利");
}else if (list.get(position).equals("Android")){
bundle.putString("name","Android");
}else if (list.get(position).equals("iOS")){
bundle.putString("name","iOS");
}else if (list.get(position).equals("休息视频")){
bundle.putString("name","休息视频");
}else if (list.get(position).equals("拓展资源")){
bundle.putString("name","拓展资源");
}else if (list.get(position).equals("前端")){
bundle.putString("name","前端");
}else if (list.get(position).equals("all")){
bundle.putString("name","all");
}
//给fragment 加bundle 数据
//activity与fragment 1.getset,2.接口回调,3.setArguments ,getAraguments
newFragment.setArguments(bundle);
return newFragment;
}
@Override
public int getCount() {
return list.size();
}
});
}
}
=============================================
package bawe.day0918zhoukaosan;
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 com.nostra13.universalimageloader.core.assist.ImageSize;
import java.util.List;
public class Myadpader extends BaseAdapter{
private List<User.ResultsBean> data;
private Context context;
public Myadpader(List<User.ResultsBean> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Hondera hondera=null;
if (view==null){
hondera = new Hondera();
view= View.inflate(context,R.layout.zidingyi,null);
hondera.name=view.findViewById(R.id.name);
hondera.img= view.findViewById(R.id.img);
view.setTag(hondera);
}else{
hondera = (Hondera) view.getTag();
}
hondera.name.setText(data.get(i).getDesc());
List<String> images = data.get(i).getImages();
if (images!=null){
if (images.size()==1){
String s = images.get(0);
ImageSize size=new ImageSize(100,100);
ImageLoader.getInstance().displayImage(s+ "?/imageView2/0/w/100",hondera.img,size);
}
}
return view;
}
class Hondera{
TextView name;
ImageView img;
}
}
==============================
package bawe.day0918zhoukaosan;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.google.gson.Gson;
import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;
import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;
public class NewFragment extends Fragment {
private ListView list;
private PullToRefreshLayout mpull;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//找到布局文件
View v = View.inflate(getActivity(), R.layout.listview, null);
//ListView控件
list = (ListView)v.findViewById(R.id.list);
mpull = v.findViewById(R.id.mpull);
mpull.setRefreshListener(new BaseRefreshListener() {
@Override
public void refresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 结束刷新
mpull.finishRefresh();
}
}, 2000);
}
@Override
public void loadMore() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 结束加载更多
mpull.finishLoadMore();
}
}, 2000);
}
});
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle bundle = getArguments();
//接收传递过来的值
String string = bundle.getString("name", "福利");
try {
String ff = URLEncoder.encode(string, "utf-8");
//调用解析方法
Jiexi(ff);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
//解析方法
private void Jiexi(final String ff) {
//使用异步
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... strings) {
String str="";
try {
URL url = new URL("http://gank.io/api/data/"+ff+"/10/1");
HttpURLConnection conne= (HttpURLConnection) url.openConnection();
conne.setConnectTimeout(5000);
conne.setReadTimeout(5000);
int responseCode = conne.getResponseCode();
if (responseCode==200){
InputStream in = conne.getInputStream();
byte[] by=new byte[1024];
int len=0;
while ((len=in.read(by))!=-1){
str+=new String(by,0,len);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
Log.d("zzz","qqqqqqqqqqqqqqqqqq"+s);
//Gson解析
Gson gson = new Gson();
User user = gson.fromJson(s, User.class);
List<User.ResultsBean> data=user.getResults();
//listview适配器
Myadpader myadpader = new Myadpader(data, getActivity());
list.setAdapter(myadpader);
super.onPostExecute(s);
}
}.execute();
}
}
import android.app.Application;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
public class App extends Application {
@Override
public void onCreate() {
DisplayImageOptions options = new DisplayImageOptions.Builder()
//设置图片在下载期间显示的图片
.showImageOnLoading(R.mipmap.ic_arrow_down)
.displayer(new FadeInBitmapDisplayer(2000)).cacheOnDisk(true)
//设置下载的图片是否缓存在内存中
.cacheInMemory(true).build();
ImageLoaderConfiguration configs = new ImageLoaderConfiguration.Builder(
this).defaultDisplayImageOptions(options).threadPoolSize(5)
.build();
ImageLoader.getInstance().init(configs);
super.onCreate();
}
}
===========================================
package bawe.day0918zhoukaosan;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private TabLayout tab;
private ViewPager pa;
private List<String> list=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate
4000
(savedInstanceState);
setContentView(R.layout.activity_main);
//查找控件
tab = (TabLayout) findViewById(R.id.tab);
pa = (ViewPager) findViewById(R.id.pager);
//福利、Android、iOS、休息视频、拓展资源、前端、all
list.add("福利");
list.add("Android");
list.add("iOS");
list.add("休息视频");
list.add("拓展资源");
list.add("前端");
list.add("all");
//tablayout和viewpager关联
tab.setupWithViewPager(pa);
//设置viewpager适配器
pa.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
//重写这个方法,将设置每个Tab的标题
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
@Override
public Fragment getItem(int position) {
//一般我们在这个位置对比一下标题是什么,,,然后返回对应的fragment
//初始化fragment 对应position有多少,fragment有多少
NewFragment newFragment = new NewFragment();
Bundle bundle = new Bundle();
//福利、Android、iOS、休息视频、拓展资源、前端、all
if (list.get(position).equals("福利")){
bundle.putString("name","福利");
}else if (list.get(position).equals("Android")){
bundle.putString("name","Android");
}else if (list.get(position).equals("iOS")){
bundle.putString("name","iOS");
}else if (list.get(position).equals("休息视频")){
bundle.putString("name","休息视频");
}else if (list.get(position).equals("拓展资源")){
bundle.putString("name","拓展资源");
}else if (list.get(position).equals("前端")){
bundle.putString("name","前端");
}else if (list.get(position).equals("all")){
bundle.putString("name","all");
}
//给fragment 加bundle 数据
//activity与fragment 1.getset,2.接口回调,3.setArguments ,getAraguments
newFragment.setArguments(bundle);
return newFragment;
}
@Override
public int getCount() {
return list.size();
}
});
}
}
=============================================
package bawe.day0918zhoukaosan;
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 com.nostra13.universalimageloader.core.assist.ImageSize;
import java.util.List;
public class Myadpader extends BaseAdapter{
private List<User.ResultsBean> data;
private Context context;
public Myadpader(List<User.ResultsBean> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Hondera hondera=null;
if (view==null){
hondera = new Hondera();
view= View.inflate(context,R.layout.zidingyi,null);
hondera.name=view.findViewById(R.id.name);
hondera.img= view.findViewById(R.id.img);
view.setTag(hondera);
}else{
hondera = (Hondera) view.getTag();
}
hondera.name.setText(data.get(i).getDesc());
List<String> images = data.get(i).getImages();
if (images!=null){
if (images.size()==1){
String s = images.get(0);
ImageSize size=new ImageSize(100,100);
ImageLoader.getInstance().displayImage(s+ "?/imageView2/0/w/100",hondera.img,size);
}
}
return view;
}
class Hondera{
TextView name;
ImageView img;
}
}
==============================
package bawe.day0918zhoukaosan;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.google.gson.Gson;
import com.jwenfeng.library.pulltorefresh.BaseRefreshListener;
import com.jwenfeng.library.pulltorefresh.PullToRefreshLayout;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.List;
public class NewFragment extends Fragment {
private ListView list;
private PullToRefreshLayout mpull;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
//找到布局文件
View v = View.inflate(getActivity(), R.layout.listview, null);
//ListView控件
list = (ListView)v.findViewById(R.id.list);
mpull = v.findViewById(R.id.mpull);
mpull.setRefreshListener(new BaseRefreshListener() {
@Override
public void refresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 结束刷新
mpull.finishRefresh();
}
}, 2000);
}
@Override
public void loadMore() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 结束加载更多
mpull.finishLoadMore();
}
}, 2000);
}
});
return v;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle bundle = getArguments();
//接收传递过来的值
String string = bundle.getString("name", "福利");
try {
String ff = URLEncoder.encode(string, "utf-8");
//调用解析方法
Jiexi(ff);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
//解析方法
private void Jiexi(final String ff) {
//使用异步
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... strings) {
String str="";
try {
URL url = new URL("http://gank.io/api/data/"+ff+"/10/1");
HttpURLConnection conne= (HttpURLConnection) url.openConnection();
conne.setConnectTimeout(5000);
conne.setReadTimeout(5000);
int responseCode = conne.getResponseCode();
if (responseCode==200){
InputStream in = conne.getInputStream();
byte[] by=new byte[1024];
int len=0;
while ((len=in.read(by))!=-1){
str+=new String(by,0,len);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}
@Override
protected void onPostExecute(String s) {
Log.d("zzz","qqqqqqqqqqqqqqqqqq"+s);
//Gson解析
Gson gson = new Gson();
User user = gson.fromJson(s, User.class);
List<User.ResultsBean> data=user.getResults();
//listview适配器
Myadpader myadpader = new Myadpader(data, getActivity());
list.setAdapter(myadpader);
super.onPostExecute(s);
}
}.execute();
}
}
相关文章推荐
- TabLayout和ViewPager实现联动效果以及Pulltorefresh
- DrawerLayout+TabLayout+ViewPager+RadioButton+Fragment+pullToRefresh+ImageLoader
- 跑偏了的三周考—— tabLayout + viewPger + pullToRefresh
- PullToRefresh+头部布局(ViewPager轮播图)+Tablayout的实现
- TabLayout上导航栏+PullToRefreshListView展示数据
- 跑偏了的三周考—— tabLayout + viewPger + pullToRefresh
- TabLayout横向滑动,DrawerLayout侧滑,PullToRefreshListView上拉刷新下拉加载联用
- lastmonthexam——DrawerLayout+TabLayout+ViewPager+PullToRefresh+Fragment+TypeTkken
- 侧滑,tablayout,PullToRefreshListView
- 简单完美解决PullToRefreshLayout中PullableListView嵌套ViewPager时滑动冲突的问题
- TabLayout+PullToRefreshListView连用
- PullToRefreshListView+Tablayout+Fragment+DrawerLayout
- TabLayout与PullToRefreshListView
- TabLayout+PullToRefreshListView连用
- Tablayout+pullTorefreshlistview(上拉,下拉)+数组Json串解析
- PullToRefresh+ImageLoader+TabLayout+ViewPager+Fragment
- TabLayout+PullToRefreshListView上拉刷新,下拉加载,imageloader自定义
- TabLayout标题栏传值+PullToRefreshListView展示数据
- PullToRefreshScrollView和listview的冲突
- 轮播图,并且在轮播图下用listview显示,填充listView让他全屏显示,可以使用PullToRefreshScrollView上下刷新,加载