<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.bwie.xlistview.XListView
android:id="@+id/xlist_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
public class XListsFragment extends Fragment {
private static final String URL = "https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/";
private int count = 1;
public boolean isLoadMore = false;
private Handler handler = new Handler();
private XListView xlist_view;
private List<Banner.bodyBean.resultBean> list;
private BannerAdapter adapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_xlist, container, false);
xlist_view = view.findViewById(R.id.xlist_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
list = new ArrayList<>();
adapter = new BannerAdapter(list,getActivity());
xlist_view.setAdapter(adapter);
getData();
xlist_view.setPullRefreshEnable(true);
xlist_view.setPullLoadEnable(true);
xlist_view.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
count = 1;
isLoadMore = false;
getData();
handler.postDelayed(new Runnable() {
@Override
public void run() {
xlist_view.stopRefresh();
}
},2000);
//设置时间
long l = System.currentTimeMillis(); Date date = new Date(l); SimpleDateFormat format = new SimpleDateFormat("HH:mm"); xlvNews.setRefreshTime(format.format(date));
}
@Override
public void onLoadMore() {
count ++;
isLoadMore = true;
getData();
handler.postDelayed(new Runnable() {
@Override
public void run() {
xlist_view.stopLoadMore();
}
},2000);
}
});
}
private void getData() {
new AsyncTask<String, Integer, String>() {
@Override
protected String doInBackground(String... strings) {
return HttpUtils.getFromHttpUrlConnection(strings[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
Banner banner = gson.fromJson(s, Banner.class);
if (banner != null){
Banner.bodyBean body = banner.getBody();
if (body != null){
List<Banner.bodyBean.resultBean> result = body.getResult();
if (result != null){
if (!isLoadMore){
list.clear();
}
list.addAll(result);
adapter.notifyDataSetChanged();
}
}
}
}
}.execute(URL + count);
}
}
public class BannerAdapter extends BaseAdapter {
private List<Banner.bodyBean.resultBean> list;
private Context context;
public BannerAdapter(List<Banner.bodyBean.resultBean> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
viewHolder holder = null;
if (convertView == null){
convertView = View.inflate(context, R.layout.item_pic_01,null);
holder = new viewHolder();
holder.img_logo = convertView.findViewById(R.id.img_logo);
holder.text_title = convertView.findViewById(R.id.text_title);
convertView.setTag(holder);
}else {
holder = (viewHolder) convertView.getTag();
}
holder.text_title.setText(list.get(position).getBarnerName());
ImageLoader.getInstance().displayImage(list.get(position).getBarnerPic(),holder.img_logo);
return convertView;
}
public class viewHolder{
ImageView img_logo;
TextView text_title;
}
}