充电桩app代码

ChatRecommendFragment.java 9.8KB

    package com.electric.chargingpile.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; import com.andview.refreshview.XRefreshView; import com.electric.chargingpile.R; import com.electric.chargingpile.adapter.ChatRecommendAdapter; import com.electric.chargingpile.adapter.ChatRecommendItemDecoration; import com.electric.chargingpile.application.MainApplication; import com.electric.chargingpile.data.ChatRecommendBean; import com.electric.chargingpile.iview.RecyclerItemTypeClickListener; import com.electric.chargingpile.manager.ProfileManager; import com.electric.chargingpile.util.JsonUtils; import com.electric.chargingpile.util.NetUtil; import com.electric.chargingpile.util.ToastUtil; import com.zhy.http.okhttp.OkHttpUtils; import com.zhy.http.okhttp.callback.StringCallback; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import okhttp3.Call; public class ChatRecommendFragment extends Fragment implements View.OnClickListener { private static final String TAG = "ChatRecommendFragment"; private View view; private XRefreshView refreshView; private ImageView iv_ask; private RecyclerView recyclerView; private ChatRecommendAdapter chatRecommendAdapter; private StaggeredGridLayoutManager layoutManager; private LinearLayout chat_share_info_remind; private boolean isFirst = false; private int page = 1; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_chat_recommend, null); initViews(); initListener(); return view; } private void initViews() { refreshView = view.findViewById(R.id.chat_x_refresh_view); refreshView.setPullLoadEnable(true); recyclerView = view.findViewById(R.id.recycler_view_test_rv); recyclerView.setHasFixedSize(true); iv_ask = view.findViewById(R.id.iv_ask); chat_share_info_remind = view.findViewById(R.id.chat_share_info_remind); String isFirstComeIn = ProfileManager.getInstance().getIsFirstComeIn(getActivity()); if (TextUtils.isEmpty(isFirstComeIn)) { isFirst = true; ProfileManager.getInstance().setFirstComeIn(getActivity(), "label"); chat_share_info_remind.setVisibility(View.VISIBLE); } else { chat_share_info_remind.setVisibility(View.GONE); } chatRecommendAdapter = new ChatRecommendAdapter(getActivity()); layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE); recyclerView.setItemAnimator(null); recyclerView.setLayoutManager(layoutManager); recyclerView.addItemDecoration(new ChatRecommendItemDecoration()); // 静默加载模式不能设置footerview recyclerView.setAdapter(chatRecommendAdapter); // refreshView.setPinnedTime(1000); // refreshView.setMoveForHorizontal(true); refreshView.setXRefreshViewListener(new XRefreshView.SimpleXRefreshListener() { @Override public void onRefresh(boolean isPullDown) { page = 1; requestHeaderData(); } @Override public void onLoadMore(boolean isSilence) { page++; requestData(); } }); refreshView.startRefresh(); requestHeaderData(); // 该页面数据发起请求起点 chatRecommendAdapter.setOnRecyclerItemClickListener(new RecyclerItemTypeClickListener() { @Override public void onItemClickListener(int position, int type) { ToastUtil.showToast(getActivity().getApplicationContext(), "position:" + position + ",type:" + type, Toast.LENGTH_SHORT); final int pos = position - 1; final ArrayList<ChatRecommendBean> chatRecommendBeans = chatRecommendAdapter.getCurrentData(); if (!NetUtil.CheckNetwork(getActivity())) { Toast.makeText(getActivity(), "请检查网络", Toast.LENGTH_SHORT).show(); return; } if (type == 2) { } Log.d(TAG, "onItemClickListener: position:" + position + ",type:" + type); } }); } private void initListener() { iv_ask.setOnClickListener(this); recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { if (newState == RecyclerView.SCROLL_STATE_IDLE) { iv_ask.setVisibility(View.VISIBLE); if (isFirst) { chat_share_info_remind.setVisibility(View.VISIBLE); } } else if (newState == RecyclerView.SCREEN_STATE_ON) { iv_ask.setVisibility(View.GONE); if (isFirst) { chat_share_info_remind.setVisibility(View.GONE); } } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); } }); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.iv_ask: // 推荐分享 // TODO break; } } public void refreshList() { if (view == null) return; refreshView.startRefresh(); page = 1; requestHeaderData(); } private void requestHeaderData() { String url = MainApplication.urlNew + "/topic/list.do"; Map<String, String> map = new HashMap<>(); map.put("selected", "1"); if (MainApplication.isLogin()) { map.put("user_id", MainApplication.userId); } OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() { @Override public void onError(Call call, Exception e) { if (page == 1) { refreshView.stopRefresh(); } else { refreshView.stopLoadMore(); } if (getActivity() != null) { ToastUtil.showToast(getActivity().getApplicationContext(), "加载失败,请重试", Toast.LENGTH_SHORT); } } @Override public void onResponse(String response) { String rtnCode = JsonUtils.getKeyResult(response, "code"); String rtnDesc = JsonUtils.getKeyResult(response, "desc"); if ("1000".equals(rtnCode)) { String rtnData = JsonUtils.getKeyResult(response, "data"); ArrayList<ChatRecommendBean> topicData = (ArrayList<ChatRecommendBean>) JsonUtils.parseToObjectList(rtnData, ChatRecommendBean.class); chatRecommendAdapter.setHeaderData(topicData); requestData(); } else { ToastUtil.showToast(getActivity().getApplicationContext(), rtnDesc, Toast.LENGTH_SHORT); } } }); } private void requestData() { String url = MainApplication.urlNew + "/topic/info/list.do"; Map<String, String> map = new HashMap<>(); map.put("page", page + ""); map.put("limit", "20"); if (MainApplication.isLogin()) { map.put("user_id", MainApplication.userId); } OkHttpUtils.get().params(map).url(url).build().connTimeOut(6000).readTimeOut(6000).execute(new StringCallback() { @Override public void onError(Call call, Exception e) { if (page == 1) { refreshView.stopRefresh(); } else { refreshView.stopLoadMore(); } ToastUtil.showToast(getActivity().getApplicationContext(), "加载失败,请重试:" + e.getMessage(), Toast.LENGTH_SHORT); } @Override public void onResponse(String response) { if (page == 1) { refreshView.stopRefresh(); } else { refreshView.stopLoadMore(); } String rtnCode = JsonUtils.getKeyResult(response, "code"); String rtnDesc = JsonUtils.getKeyResult(response, "desc"); if ("1000".equals(rtnCode)) { String rtnData = JsonUtils.getKeyResult(response, "data"); ArrayList<ChatRecommendBean> chatRecommendBeans = (ArrayList<ChatRecommendBean>) JsonUtils.parseToObjectList(rtnData, ChatRecommendBean.class); if (page == 1) { refreshView.setLoadComplete(false); chatRecommendAdapter.setData(chatRecommendBeans); } else { chatRecommendAdapter.addData(chatRecommendBeans); } if (chatRecommendBeans.size() == 0) { refreshView.setLoadComplete(true); } } else { ToastUtil.showToast(getActivity().getApplicationContext(), rtnDesc, Toast.LENGTH_SHORT); } } }); } }