今日头条2
来源:互联网 发布:免费阿里云主机 编辑:程序博客网 时间:2024/06/02 23:41
Bean类
package com.bw.bean;
import java.util.List;
public class SuperBean {
private boolean error;
private List<ResultsBean> results;
public boolean isError() {
return error;
}
public void setError(boolean error) {
this.error = error;
}
public List<ResultsBean> getResults() {
return results;
}
public void setResults(List<ResultsBean> results) {
this.results = results;
}
public static class ResultsBean {
private String _id;
private String createdAt;
private String desc;
private String publishedAt;
private String source;
private String type;
private String url;
private boolean used;
private String who;
private List<String> images;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String getCreatedAt() {
return createdAt;
}
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getPublishedAt() {
return publishedAt;
}
public void setPublishedAt(String publishedAt) {
this.publishedAt = publishedAt;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public boolean isUsed() {
return used;
}
public void setUsed(boolean used) {
this.used = used;
}
public String getWho() {
return who;
}
public void setWho(String who) {
this.who = who;
}
public List<String> getImages() {
return images;
}
public void setImages(List<String> images) {
this.images = images;
}
}
}
MainActivity类
import android.os.Bundle;
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.support.v7.app.AppCompatActivity;
import com.bw.myFragment.MyFragment;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
//声明变量
private String[] titlelist = {"福利", "Android", "iSO", "休息视频", "拓展资源", "前端", "all"};
private TabLayout tabLayout;
private ViewPager viewPager;
private List<MyFragment> mViewList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initView();
}
private void initView() {
//初始化组件
tabLayout = (TabLayout) findViewById(R.id.tablayout);
viewPager = (ViewPager) findViewById(R.id.view_pager);
for (int i = 0; i < titlelist.length; i++) {
MyFragment fragment = new MyFragment();
Bundle b = new Bundle();
b.putString("url", "http://gank.io/api/data/"+titlelist[i]+"/10/1");
fragment.setArguments(b);
//收集fragment
mViewList.add(fragment);
//给tablayout添加tab选项卡
tabLayout.addTab(tabLayout.newTab().setText(titlelist[i]));
}
FragmentManager fm = getSupportFragmentManager();
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(fm, mViewList);
viewPager.setAdapter(adapter);//给ViewPager设置适配器
tabLayout.setupWithViewPager(viewPager);//将TabLayout和ViewPager关联起来。
tabLayout.setTabsFromPagerAdapter(adapter);//给Tabs设置适配器
}
private void initData() {
}
class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<MyFragment> mViewList;
public MyFragmentPagerAdapter(FragmentManager fm, List<MyFragment> mViewList) {
super(fm);
this.mViewList = mViewList;
}
@Override
public Fragment getItem(int position) {
return mViewList.get(position);
}
@Override
public int getCount() {
return mViewList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return titlelist[position];//页卡标题
}
}
}
NetWorks类
package com.bw.utils;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class NetWorks {
public String getjsonstr(String urlstr) {
URL url = null;
HttpURLConnection httpURLConnection = null;
String jsonStr = "";
try {
url = new URL(urlstr);//创建URL对象,连接JSON_URL对应的服务器
httpURLConnection = (HttpURLConnection) url.openConnection();//打开连接
httpURLConnection.setConnectTimeout(5000);//设置请求时长为5秒
httpURLConnection.setReadTimeout(5000);//设置读取服务器响应数据的时长
int resCode = httpURLConnection.getResponseCode();//得到响应结果码
if (resCode == 200) {//表示响应成功,可以获得相应的额结果
//得到响应的结果,,服务器响应的输入流
InputStream inputStream = httpURLConnection.getInputStream();
byte[] buffers = new byte[1024];
int length = 0;
while ((length = inputStream.read(buffers)) != -1) {//本次循环成立,说明读取到了数据
jsonStr += new String(buffers, 0, length);
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonStr;
}
}
MyFragment类
package com.bw.myFragment;
import android.os.AsyncTask;
import android.os.Bundle;
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 com.bw.bean.SuperBean;
import com.bw.myadapters.MyBaseAdapter;
import com.bw.utils.NetWorks;
import com.bw.yanshaohua20170918.R;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.List;
/**
* Created by 我走路带风 on 2017/9/18.
*/
public class MyFragment extends Fragment{
private String url;
private PullToRefreshListView lv;
private List<SuperBean.ResultsBean> results;
private int page = 1;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//获取到url
Bundle arguments = getArguments();
url = arguments.getString("url");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(),R.layout.fragment_item,null);
lv = (PullToRefreshListView) view.findViewById(R.id.lv);
//创建异步
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
NetWorks netWorks = new NetWorks();
String jsonstr = netWorks.getjsonstr(url);
return jsonstr;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperBean superBean = new Gson().fromJson(s, SuperBean.class);
results = superBean.getResults();
MyBaseAdapter adapter = new MyBaseAdapter(results,getActivity());
lv.setAdapter(adapter);
lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
fresh();
}
});
lv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
loadMore();
}
});
}
}.execute();
return view;
}
private void loadMore() {
page++;
//创建异步
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
NetWorks netWorks = new NetWorks();
String jsonstr = netWorks.getjsonstr(url);
return jsonstr;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperBean superBean = new Gson().fromJson(s, SuperBean.class);
results = superBean.getResults();
MyBaseAdapter adapter = new MyBaseAdapter(results,getActivity());
lv.setAdapter(adapter);
lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
fresh();
}
});
lv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
loadMore();
}
});
}
}.execute();
}
private void fresh() {
//创建异步
new AsyncTask<String,Integer,String>(){
@Override
protected String doInBackground(String... params) {
NetWorks netWorks = new NetWorks();
String jsonstr = netWorks.getjsonstr(url);
return jsonstr;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
SuperBean superBean = new Gson().fromJson(s, SuperBean.class);
results = superBean.getResults();
MyBaseAdapter adapter = new MyBaseAdapter(results,getActivity());
lv.setAdapter(adapter);
lv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
fresh();
}
});
lv.setOnLastItemVisibleListener(new PullToRefreshBase.OnLastItemVisibleListener() {
@Override
public void onLastItemVisible() {
loadMore();
}
});
}
}.execute();
}
}
BaseApplication类
package com.bw.myApplication;
import android.app.Application;
import android.graphics.Bitmap;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
public class BaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化ImageLoader配置
ImageLoaderConfiguration configuration =ImageLoaderConfiguration.createDefault(this);
//应用
ImageLoader.getInstance().init(configuration);
}
public DisplayImageOptions getOptions(){
//初始化图片配置
DisplayImageOptions options = new DisplayImageOptions.Builder().bitmapConfig(Bitmap.Config.RGB_565).build();
//返回配置
return options;
}
}
MyBaseAdapter类
package com.bw.myadapters;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.bw.bean.SuperBean;
import com.bw.yanshaohua20170918.R;
import java.util.List;
/**
* Created by 我走路带风 on 2017/9/18.
*/
public class MyBaseAdapter extends BaseAdapter {
private List<SuperBean.ResultsBean> results;
private Context context;
public MyBaseAdapter(List<SuperBean.ResultsBean> results, Context context) {
this.results = results;
this.context = context;
}
@Override
public int getCount() {
return results.size();
}
@Override
public Object getItem(int position) {
return results.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = View.inflate(context,R.layout.list_item,null);
TextView tv = (TextView) convertView.findViewById(R.id.tv);
tv.setText(results.get(position).getDesc());
return convertView;
}
}
/**
**/
- 今日头条2
- 高仿今日头条(2)
- 今日头条算法
- 面试-今日头条
- 今日头条
- 今日头条
- 今日头条
- 今日头条面试
- 今日头条导航
- 仿今日头条
- 今日头条笔试
- 今日头条面试
- 今日头条效果
- 模拟今日头条
- 今日头条模拟
- 今日头条
- 今日头条
- 今日头条--笔试
- 分布式文件系统
- Wellner 自适应阈值二值化算法
- 大数据时代:十大最热门的大数据技术
- WiFi网络WPA2 KRACK漏洞分析报告
- 服务端java实现根据地址从百度API获取经纬度
- 今日头条2
- 【传智播客郑州校区】如何制作自己的公众号
- java二维数组
- 一张思维导图,让正则表达式不再难懂
- HTML 判断android ios
- 关于截取字符串的方式
- ASP.NET-MVC操作技巧
- VMware 安装Ubuntu16.04时显示不全的解决方法
- C#读写数据是否为原子操作