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 {
// 不可见时不执行操作
}
}
}