配置网络权限
public class Netutil {
private static Netutil instance;
public Netutil(){}
public static Netutil getInstance(){
if (instance==null){
instance=new Netutil();
}
return instance;
}
//创建接口
public static interface CallBack<T>{
void onSuccess(T t);
}
//网络封装
public static String RequestData(String str){
String result=\"\";
try {
URL url =new URL(str);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod(\"GET\");
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode==200){
result=stream2String(urlConnection.getInputStream());
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
//字节流
private static String stream2String(InputStream inputStream) throws IOException{
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
for (String tmp=bufferedReader.readLine();tmp!=null;tmp=bufferedReader.readLine()){
stringBuilder.append(tmp);
}
return stringBuilder.toString();
// return bufferedReader.toString();
}
//网络解析
public static <T> T RequestData(String str,Class clazz){
T t=(T) new Gson().fromJson(RequestData(str),clazz);
return t;
}
//异步请求
public static void RequestData(final String str, final Class clazz, final CallBack callBack){
new AsyncTask<String, Void, >() {
@Override
protected doInBackground(String... strings) {
return RequestData(str,clazz);
}
@Override
protected void onPostExecute( o) {
callBack.onSuccess(o);
}
}.execute(str);
}
接口回调+上拉下拉
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//寻找资源ID
ptr = view.findViewById(R.id.ptr);
//设置适配器
newsAdapter = new NewsAdapter(getContext());
//引用适配器
ptr.setAdapter(newsAdapter);
//设置上拉下拉
ptr.setMode(PullToRefreshListView.Mode.BOTH);
ptr.setOnRefreshListener(new PullToRefresh .OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefresh <ListView> refreshView) {
initdata();
}
@Override
public void onPullUpToRefresh(PullToRefresh <ListView> refreshView) {
initdata();
}
});
initdata();
pagerd++;
}
//网络接口
private String apiurl=\"http://www.xieast.com/api/news/news.php?\";
private void initdata() {
Netutil.getInstance().RequestData(apiurl + pagerd, NewsBean.class, new Netutil.CallBack<NewsBean>() {
@Override
public void onSuccess(NewsBean newsBean) {
if (pagerd==1){
newsAdapter.setList(newsBean.getData());
}else {
newsAdapter.addList(newsBean.getData());
}
pagerd++;
ptr.onRefreshComplete();
}
});
}
继续阅读与本文标签相同的文章
上一篇 :
大华乐橙携多款重磅新品参展2019深圳安博会
下一篇 :
如何做一家受尊重的公司?马云是这样说的!
-
Cassandra gossip介绍系列之一
2026-05-18栏目: 教程
-
GO学习笔记 - 数据校验
2026-05-18栏目: 教程
-
源码分析 RocketMQ DLedger 多副本之 Leader 选主
2026-05-18栏目: 教程
-
源码分析 RocketMQ DLedger 多副本存储实现
2026-05-18栏目: 教程
-
阿里巴巴小程序繁星计划技术能力支持指南
2026-05-18栏目: 教程
