package com.jiuqi.njt.ui; import java.util.ArrayList; import java.util.Date; import java.util.List; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.TextView; import com.jiuqi.mobile.nigo.comeclose.bean.LoadOnGetList; import com.jiuqi.mobile.nigo.comeclose.bean.app.file.CollectionBean; import com.jiuqi.mobile.nigo.comeclose.bean.app.news.NoticeNewsBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean; import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean; import com.jiuqi.mobile.nigo.comeclose.manager.app.INewsManager; import com.jiuqi.mobile.nigo.comeclose.manager.app.SelectNewsKey; import com.jiuqi.mobile.nigo.comeclose.manager.app.SelectNewsParam; import com.jiuqi.njt.R; import com.jiuqi.njt.NewsAndFavor.LookNewsActivity; import com.jiuqi.njt.adapter.MyListAdapter; import com.jiuqi.njt.data.MyApp; import com.jiuqi.njt.data.OptsharepreInterface; import com.jiuqi.njt.register.RegisterUtils; import com.jiuqi.njt.register.ShowDetail; import com.jiuqi.njt.register.TaskInterface; import com.jiuqi.njt.util.ActivityUtil; import com.jiuqi.njt.util.Constants; import com.jiuqi.njt.util.DateUtil; import com.jiuqi.njt.widget.XListView; import com.jiuqi.njt.widget.XListView.IXListViewListener; import com.jiuqi.njt.widget.XListView.ListFooteState; import com.jiuqi.util.UIUtil; @TargetApi(Build.VERSION_CODES.FROYO) public class NjtNewsList extends Fragment implements IXListViewListener { private String TAG = this.getClass().getName(); private AdminAreaBean xzqh = null; private XListView listView; private int startIndex; private int totalCount; private MyListAdapter adapter; private SelectNewsKey selectNewsKey; private int type = 6; private int typeParam = 0; private String repairType = ""; private String title = ""; private View loadlayout; private int width,heigh; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.e(TAG, "onActivityCreated"); } @Override public void onAttach(Activity activity) { super.onAttach(activity); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); width = ActivityUtil.getWindowWidth(getActivity()); // 屏幕宽度(像素); heigh = ActivityUtil.getWindowHeight(getActivity()); } @SuppressLint("NewApi") @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View contet = inflater.inflate(R.layout.activity_my_favor_list, container, false); // loadlayout = contet.findViewById(R.id.load_Layout); listView = (XListView) contet.findViewById(R.id.listView); listView.setXListViewListener(this); listView.setPullLoadEnable(true); typeParam = getArguments().getInt("TITLES", 0); switch (typeParam) { case 0: title = "头条";//6 type = 6; break; case 1: type = 3; title = "政策";//3 break; case 2: type = 7; title = "动态";//7 break; case 3: type = 2; title = "补贴";//2 break; default: break; } return contet; } @Override public void onResume() { super.onResume(); Log.e(TAG, "onResume"); xzqh = LookNewsActivity.xzqh; startIndex = 0; totalCount = 0; toQuery(); } @Override public void onDestroyView() { super.onDestroyView(); Log.e(TAG, "onDestroyView"); } ArrayList<NoticeNewsBean> dataList = new ArrayList<NoticeNewsBean>(); private void toQuery() { // com.jiuqi.njt.util.UIUtil.hideView(listView); // com.jiuqi.njt.util.UIUtil.showView(loadlayout); RegisterUtils.getData(getActivity(), INewsManager.class, new TaskInterface() { private LoadOnGetList<NoticeNewsBean> newslist = new LoadOnGetList<NoticeNewsBean>(); @Override public <T> void taskFinishReturn(T... result) { setFootHintText(); if (null != newslist) { dataList.addAll(newslist.getList()); totalCount = dataList.size(); startIndex += dataList.size();// 设置下次读取的开始索引 if (null != getActivity() && null != dataList) { adapter = new MyListAdapter(getActivity(), dataList,width,heigh,1); adapter.setTitle(title); listView.setAdapter(adapter); } } // com.jiuqi.njt.util.UIUtil.showView(listView); // com.jiuqi.njt.util.UIUtil.hideView(loadlayout); onLoad(); } @Override public <T> void taskExecuteReturn(T... result) { if (startIndex == 0) { dataList = new ArrayList<NoticeNewsBean>(); } long code = 0; if (null != xzqh) { code = xzqh.getCode(); } selectNewsKey = new SelectNewsKey(); selectNewsKey.setNoticeNewsParams(type, code); // 维修保养,需要添加一个维修类型 SelectNewsParam param = new SelectNewsParam( "bigMachineCategories", "all" .equals(repairType) ? null : repairType); SelectNewsParam param2 = new SelectNewsParam("status", 2); selectNewsKey.addParams(param); selectNewsKey.addParams(param2); selectNewsKey.setSize(Constants.PAGE_SIZE); selectNewsKey.setStartIndex(startIndex); newslist = ((INewsManager) result[0]).get( NoticeNewsBean.class, selectNewsKey); } }, (type==6 && typeParam == 0)?5:0); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.e(TAG, "onActivityResult" + "onActivityResult"); super.onActivityResult(requestCode, resultCode, data); } @Override public void onRefresh() { startIndex = 0; totalCount = 0; toQuery(); } @Override public void onLoadMore() { // if (startIndex < totalCount) { // selectNewsKey.setStartIndex(startIndex); // toQuery(); // } else { // UIUtil.showMsg(getActivity(), "没有更多"); // onLoad(); // } if (totalCount == 0 || totalCount % Constants.PAGE_SIZE != 0) { toQuery();// 当totalcount 为0时不加载 } else { UIUtil.showMsg(getActivity(), "没有更多信息"); onLoad(); } } public void setFootHintText() { if (totalCount == 0) { listView.setListFooteState(ListFooteState.noData); } else if (totalCount % Constants.PAGE_SIZE != 0) { listView.setListFooteState(ListFooteState.noMoreData); } else { listView.setListFooteState(ListFooteState.nomal); } listView.showNoData(); } private void onLoad() { listView.stopRefresh(); listView.stopLoadMore();// 停止加载 listView.setRefreshTime(DateUtil.getTimeStamp(new Date(), DateUtil.MM_DD_HH_MM_SS)); } class MyAdapter extends BaseAdapter { private Context context; private List<CollectionBean> collectionBeanList; private LayoutInflater flater; public MyAdapter(Context context, List<CollectionBean> collectionBeanList) { super(); this.context = context; this.collectionBeanList = collectionBeanList; flater = LayoutInflater.from(context); } @Override public int getCount() { return collectionBeanList.size(); } @Override public Object getItem(int position) { return collectionBeanList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (null == convertView) { holder = new ViewHolder(); convertView = flater.inflate(R.layout.list_item_myfavor, null); TextView textTop = (TextView) convertView .findViewById(R.id.myFavor); Button rightPhone = (Button) convertView .findViewById(R.id.myfavor_phone); holder.tvTitleTop = textTop; holder.btRightPhone = rightPhone; convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.btRightPhone.setVisibility(View.GONE); final CollectionBean collectionBean = collectionBeanList .get(position); if (null != collectionBean) { UserBean userBean = collectionBean.getUserBean(); if (null != userBean) { String name = (null == userBean.getUserName() ? "" : userBean.getUserName()); String tel = (null == userBean.getMobileNumber() ? "" : userBean.getMobileNumber()); holder.tvTitleTop.setText(name); } } convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, ShowDetail.class); intent.putExtra("CollectionBean", collectionBean); startActivity(intent); } }); return convertView; } class ViewHolder { private TextView tvTitleTop; private Button btRightPhone; } } @Override public void onDestroy() { super.onDestroy(); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { // fragment可见时加载数据 } else { // 不可见时不执行操作 } } }