public class Frag_01 extends Fragment implements XListView.IXListViewListener{
private String path = "http://www.xieast.com/api/news/news.php?page=";
private XListView xlistview;
private int num = 1;
private List<Beans.DataBean> data = new ArrayList<>();
private MyAdapter myAdapter;
private Handler handler;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag_01,container,false);
//控件
xlistview = view.findViewById(R.id.xlistview);
//方法
getData(1);
handler = new Handler();
xlistview.setPullRefreshEnable(true);
xlistview.setPullLoadEnable(true);
xlistview.setXListViewListener(this);
return view;
}
//时间
private void getTime() {
xlistview.stopRefresh();//停止刷新
xlistview.stopLoadMore();//停止加载更多
SimpleDateFormat dateFormat = new SimpleDateFormat("mm:ss");//设置日期显示格式
Date date = new Date(System.currentTimeMillis()); //获取当前时间
String format = dateFormat.format(date);// 将时间装换为设置好的格式
xlistview.setRefreshTime(format);//设置时间*/
}
private void getData(int num) {
new AsyncTask<String, Integer, List<Beans.DataBean>>() {
@Override
protected List<Beans.DataBean> doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setConnectTimeout(5000);
urlConnection.setRequestMethod("GET");
byte[] bytes = new byte[1024];
int len = 0;
if(urlConnection.getResponseCode()==200){
InputStream inputStream = urlConnection.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
while ((len=inputStream.read(bytes))!=-1){
outputStream.write(bytes,0,len);
}
String json = outputStream.toString();
inputStream.close();
outputStream.close();
//解析数据
Gson gson = new Gson();
Beans beans = gson.fromJson(json, Beans.class);
return beans.getData();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(List<Beans.DataBean> dataBeans) {
super.onPostExecute(dataBeans);
data.addAll(dataBeans);
//适配器
myAdapter = new MyAdapter(getActivity(), (List<Beans.DataBean>) data);
xlistview.setAdapter(myAdapter);
//适配器
myAdapter.notifyDataSetChanged();
}
}.execute(path+num);
}
@Override
public void onRefresh() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
num = 1;
data.clear();
getData(1);
getTime();
}
},3000);
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
num++;
getData(num);
getTime();
}
},3000);
}
}
Android Studio 实现上拉加载和下拉刷新
最新推荐文章于 2024-06-21 23:51:21 发布