XListView 上拉重新整理下拉載入
阿新 • • 發佈:2018-11-05
xml佈局程式碼:
<com.bawei.xlistviewlibrary.XListView
android:id="@+id/xListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
java程式碼;
public class Fragment21 extends Fragment implements XListView.IXListViewListener{
private XListView xListView; private int count = 1; private String path = "http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count="; private ArrayList<User.Result> list; private MyAdapter myAdapter; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment21, container, false); //找控制元件 xListView = (XListView) view.findViewById(R.id.xListView); //允許上拉重新整理下拉載入 xListView.setPullLoadEnable(true); xListView.setPullRefreshEnable(true); xListView.setXListViewListener(this); //建立集合 list = new ArrayList<>(); getDate(count); //介面卡 myAdapter = new MyAdapter(getActivity(), list); xListView.setAdapter(myAdapter); return view; } //獲取資料 private void getDate(int count) { //呼叫封裝類 HttpConUtils httpConUtils = new HttpConUtils(); httpConUtils.getpath(path + count); httpConUtils.getstring(new HttpConUtils.GetDate() { @Override public void setstring(String s) { //解析 Gson gson = new Gson(); User user = gson.fromJson(s, User.class); //Toast.makeText(getActivity(),list.toString(),Toast.LENGTH_SHORT).show(); list.clear(); list.addAll(user.getResult()); myAdapter.getList(list); } }); } //上拉重新整理 @Override public void onRefresh() { list.clear(); getDate(1); close(); } //下拉載入 @Override public void onLoadMore() { count++; getDate(count); close(); } //關閉 public void close() { xListView.stopRefresh(); xListView.stopLoadMore(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(System.currentTimeMillis()); xListView.setRefreshTime(""+simpleDateFormat.format(date)); }
}
adapter介面卡:
public class MyAdapter extends BaseAdapter {
private Context context; private ArrayList<User.Result> list; public MyAdapter(Context context, ArrayList<User.Result> list) { this.context = context; this.list = list; } public void getList(ArrayList<User.Result> list) { this.list = list; notifyDataSetChanged(); } @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_list, null); holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.text); holder.text2 = (TextView) convertView.findViewById(R.id.text2); holder.image = (ImageView) convertView.findViewById(R.id.image); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(list.get(position).getName()); holder.text2.setText(list.get(position).getSummary()); Picasso.with(context).load(list.get(position).getImageUrl()).into(holder.image); return convertView; } class ViewHolder { TextView text, text2; ImageView image; } }