package com.wuxiaolong.wewin.ui.juzimi; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView; import com.wuxiaolong.wewin.model.MainModel; import com.wuxiaolong.wewin.retrofit.RetrofitCallback; import com.wuxiaolong.wewin.ui.BaseFragment; import com.wuxiaolong.wewin.utils.AppConstants; import com.xiaomolongstudio.wewin.R; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.util.ArrayList; import java.util.List; import butterknife.BindView; import okhttp3.ResponseBody; import retrofit2.Call; import static com.xiaomolongstudio.wewin.R.id.pullLoadMoreRecyclerView; /** * 美图美句 */ public class MainFragment extends BaseFragment { private RecyclerViewAdapter mRecyclerViewAdapter = null; private int mPage = 1; private int position = 0; private String url = "http://www.juzimi.com/meitumeiju?page="; private boolean hasTitle = true; @BindView(pullLoadMoreRecyclerView) PullLoadMoreRecyclerView mPullLoadMoreRecyclerView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { position = getArguments().getInt(AppConstants.POSITION); url = getArguments().getString("url"); if (position == 0) { hasTitle = true; } else { hasTitle = false; } } } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.main_fragment, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mPullLoadMoreRecyclerView.setStaggeredGridLayout(2);//参数为列数 mPullLoadMoreRecyclerView.setRefreshing(true); mRecyclerViewAdapter = new RecyclerViewAdapter(getActivity(), hasTitle); mPullLoadMoreRecyclerView.setAdapter(mRecyclerViewAdapter); mPullLoadMoreRecyclerView.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() { @Override public void onRefresh() { mPage = 1; loadData(); } @Override public void onLoadMore() { mPage = mPage + 1; loadData(); } }); loadData(); } private void loadData() { Call<ResponseBody> call; if (position == 0) { call = apiStores.loadMainData(mPage); } else if (position == 1) { call = apiStores.loadMainData("shouxiemeiju", mPage); } else { call = apiStores.loadMainData("jingdianduibai", mPage); } call.enqueue(new RetrofitCallback<ResponseBody>() { @Override public void onSuccess(ResponseBody responseBody) { try { String doc = new String(responseBody.bytes(), "UTF-8"); Document mDocument = Jsoup.parse(doc); List<String> titleData = null; if (hasTitle) { titleData = new ArrayList<>(); Elements es = mDocument.getElementsByClass("xlistju"); for (Element e : es) { titleData.add(e.text()); } } List<String> hrefData = new ArrayList<>(); Elements es1 = mDocument.getElementsByClass("chromeimg"); for (Element e : es1) { hrefData.add(e.attr("src")); } List<MainModel> mainList = new ArrayList<>(); for (int i = 0; i < hrefData.size(); i++) { MainModel mainModel = new MainModel(); if (hasTitle) { mainModel.setTitle(titleData.get(i)); } mainModel.setIamgeUrl(hrefData.get(i)); mainList.add(mainModel); } if (mPage == 1) { mRecyclerViewAdapter.getmMainList().clear(); } mRecyclerViewAdapter.getmMainList().addAll(mainList); mRecyclerViewAdapter.notifyDataSetChanged(); } catch (Exception e) { e.printStackTrace(); } } @Override public void onFailure(int code, String msg) { toastShow(msg); } @Override public void onThrowable(Throwable t) { toastShow(t.getMessage()); } @Override public void onFinish() { mPullLoadMoreRecyclerView.setPullLoadMoreCompleted(); } }); addCalls(call); } }