传值
public class NewsFragment extends Fragment{
private View view;
private TabLayout tabLayout;
private ViewPager viewPager;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.home_layout,container,false);
tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
viewPager = (ViewPager) view.findViewById(R.id.view_pager);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
final List<String> list=new ArrayList<>();
list.add("数据新闻");
list.add("快讯");
list.add("头条");
list.add("精编公告");
list.add("美股");
list.add("港股");
list.add("基金");
list.add("理财");
viewPager.setOffscreenPageLimit(list.size());
viewPager.setAdapter(new FragmentPagerAdapter(getChildFragmentManager()) {
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
@Override
public Fragment getItem(int position) {
FragmentData fragmentData = new FragmentData();
Bundle bundle=new Bundle();
bundle.putString("name",list.get(position));
fragmentData.setArguments(bundle);
return fragmentData;
}
@Override
public int getCount() {
return list.size();
}
});
tabLayout.setupWithViewPager(viewPager);
}
}
获取数据
public class FragmentData extends Fragment {
private View view;
private PullToRefreshListView refreshListView;
private ILoadingLayout startLabels;
List<DataDataBean.DataBean> list=new ArrayList<>();
private ListViewAdapter listViewAdapter;
private int page_num=1;
private String name;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.item_layout,container,false);
refreshListView = (PullToRefreshListView) view.findViewById(R.id.refresh_listview);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
name = getArguments().getString("name", "");
if(name.equals("数据新闻")){
name ="xbsjxw";
}else if(name.equals("快讯")){
name ="txs";
}else if(name.equals("头条")){
name ="toutiao";
}else if(name.equals("精编公告")){
name ="news/mobile/jbgg";
}else if(name.equals("美股")){
name ="news/mobile/mgxw";
}else if(name.equals("港股")){
name ="news/mobile/ggxw";
}else if(name.equals("基金")){
name ="news/mobile/jjxw";
}else if(name.equals("理财")){
name ="news/mobile/lcxw";
}
getDataFromNet();
refreshListView.setMode(PullToRefreshBase.Mode.BOTH);
//3.通过getLoadingLayoutProxy 方法来指定上拉和下拉时显示的状态的区别(也就是设置向下拉的时候头部里面显示的文字)
//此时这里设置的是下拉刷新的时候显示的文字,所以第一个设置true表示现在是刷新,第二个设置为false
startLabels = refreshListView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在刷新...");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = refreshListView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
refreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
getRefreshData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num++;
getDataFromNet();
}
});
}
private void getRefreshData() {
NetDataUtil.getData("http://mnews.gw.com.cn/wap/data/news/"+name+"/page_1.json", getActivity(), new JsonCallBack() {
@Override
public void getJsonString(String json) {
try {
JSONArray jsonArray=new JSONArray(json);
Gson gson=new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(0,dataDataBean.getData());
setAdapter();
refreshListView.onRefreshComplete();
startLabels.setLastUpdatedLabel("上次更新时间:"+new SimpleDateFormat("HH:mm").format(new Date(System.currentTimeMillis())));//last最近的,最后一次update修改/更新
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private void getDataFromNet() {
NetDataUtil.getData("http://mnews.gw.com.cn/wap/data/news/"+name+"/page_"+page_num+".json", getActivity(), new JsonCallBack() {
@Override
public void getJsonString(String json) {
try {
JSONArray jsonArray=new JSONArray(json);
Gson gson=new Gson();
DataDataBean dataDataBean = gson.fromJson(jsonArray.getString(0), DataDataBean.class);
list.clear();
list.addAll(dataDataBean.getData());
setAdapter();
refreshListView.onRefreshComplete();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
private void setAdapter() {
if (listViewAdapter == null){
listViewAdapter = new ListViewAdapter(getActivity(),list);
refreshListView.setAdapter(listViewAdapter);
}else {
listViewAdapter.notifyDataSetChanged();
}
}
}