xListView(联网判断)
来源:互联网 发布:唯品会秒杀软件 编辑:程序博客网 时间:2024/06/01 19:04
1.MainActiv类
private XListViewxLv; private MyBaseAdapteradapter; //定义一个页码变量记录用户刷新到第几页了 private int pageIndex =1; //定义一个变量去记录用户操作行为(例如:上拉、下拉) private booleanflag;
@Override protected voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
xLv = (XListView) findViewById(R.id.xLv); //设置是否可以上下拉加载 xLv.setPullLoadEnable(true); xLv.setXListViewListener(this);
if(isOnline()) { //有网,联网请求数据 getData(); }else{ //弹出提示对话框 showDialog(); }
}
private voidshowDialog(){
AlertDialog.Builder builder = newAlertDialog.Builder(this); builder.setMessage("怎么可没网呢"); builder.setNegativeButton("不联网,",null); builder.setPositiveButton("联网", newDialogInterface.OnClickListener() { @Override publicvoid onClick(DialogInterface dialog, int which) {
//跳转网络设置界面 startActivity(newIntent(Settings.ACTION_WIRELESS_SETTINGS));
} }); builder.create().show();
}
public booleanisOnline() {
//得到一个连接管理者 ConnectivityManager connMgr =(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); //得到联网信息 NetworkInfo networkInfo =connMgr.getActiveNetworkInfo(); //判断设备是否联网 return (networkInfo != null &&networkInfo.isConnected()); }
private voidgetData(){
try { getNetWorkData("http://apis.juhe.cn/cook/query.php?menu="+URLEncoder.encode("西红柿","utf-8")+"&key=12345&pn="+pageIndex+"&rn=10"); } catch (Exception e) { e.printStackTrace(); }
}
private voidgetNetWorkData(String url){
new AsyncTask(){
@Override protectedvoid onPostExecute(String s) { super.onPostExecute(s);
if(s == null){ return; }
Gson gson = new Gson(); MenuInfo menuInfo =gson.fromJson(s,MenuInfo.class);
List dataBeanList =menuInfo.getResult().getData();
if(adapter == null) { //将数据绑定到适配上 adapter = new MyBaseAdapter(MainActivity.this,dataBeanList); //将适配器上的数据映射到ListView xLv.setAdapter(adapter); }else{ adapter.loadMore(dataBeanList,flag); } }
@Override protectedString doInBackground(String... params) {
try { URL url = new URL(params[0]); HttpURLConnection connection =(HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000);
int code = connection.getResponseCode();
if(code == 200){ InputStream is = connection.getInputStream(); returnStreamTools.readFromNetWork(is); } } catch (Exception e) { e.printStackTrace(); } return null; } }.execute(url);
}
@Override public void onRefresh(){ flag = true; ++pageIndex; getData(); //停止下拉刷新 xLv.stopRefresh(true);
}
@Override public void onLoadMore(){
Log.d("MainActivity", "上拉加载更多数据"); flag = false; ++pageIndex; getData(); //停止加载更多 xLv.stopLoadMore();
}
@Override public void onCreate(){ super.onCreate();
String path =Environment.getExternalStorageDirectory()+"1507DAccess";
File cacheDir = new File(path);
ImageLoaderConfiguration config = newImageLoaderConfiguration.Builder(this) .threadPriority(100) .threadPoolSize(3) .memoryCacheExtraOptions(200,200) .memoryCacheSize(2 * 1024 *1024) .diskCache(newUnlimitedDiskCache(cacheDir)) .diskCacheFileNameGenerator(new Md5FileNameGenerator()) .diskCacheSize(50 * 1024 *1024) .build(); ImageLoader.getInstance().init(config);
}
public staticDisplayImageOptions getOptons(){
DisplayImageOptions options = newDisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisk(true) .showImageForEmptyUri(R.mipmap.ic_empty) .showImageOnFail(R.mipmap.ic_error) .showImageOnLoading(R.mipmap.loading) .build();
return options;
}
private Contextcontext; private ListdataBeanList;
publicMyBaseAdapter(Context context,List dataBeanList){ this.context=context; this.dataBeanList = dataBeanList; }
public voidloadMore(List datas,boolean flag){
for (MenuInfo.ResultBean.DataBean dataBean :datas) { //flag =true 代表下拉 false 上拉 if(flag){ dataBeanList.add(0,dataBean); }else{ //将更多的数据添加到原来与适配器绑定的集合中去 dataBeanList.add(dataBean); }
} //刷新界面 notifyDataSetChanged();
}
@Override public int getCount(){ return dataBeanList != null?dataBeanList.size(): 0; }
@Override public ObjectgetItem(int position) { return dataBeanList.get(position); }
@Override public longgetItemId(int position) { return position; }
@Override public View getView(intposition, View convertView, ViewGroup parent) {
//填充布局 if(convertView == null){ convertView =convertView.inflate(context,R.layout.item,null); }
ImageView ivIcon = (ImageView)convertView.findViewById(R.id.ivIcon); TextView tvContent = (TextView)convertView.findViewById(R.id.tvContent);
//设置文本信息 tvContent.setText(dataBeanList.get(position).getTitle()); //加载图片 ImageLoader.getInstance().displayImage(dataBeanList.get(position).getAlbums().get(0),ivIcon,MyApplication.getOptons());
return convertView; }
public class MainActivity extends AppCompatActivity implementsXListView.IXListViewListener {
}
2.Application类
public class MyApplication extends Application {
}
3.适配器类
public class MyBaseAdapter extends BaseAdapter {
}
4.工具类
5.Json串类
6.访问网络、读取内存权限
阅读全文
0 0
- xListView(联网判断)
- 联网判断与Xlistview展示
- xlistview的判断
- 联网判断
- 联网判断
- 联网判断
- 联网判断
- 联网判断
- 联网判断
- 联网判断
- 联网判断
- 联网判断
- 判断联网状态(是否有网)
- Volley联网判断有无网络(1)
- 判断是否可以联网
- android判断是否联网
- android 判断是否联网
- 判断电脑是否联网
- HttpClient(POST+GET)
- python里使用协程来创建echo服务器
- java8 stream().forEach 效率
- WebView界面
- ImageLoader加载网络图片无限轮播
- xListView(联网判断)
- 解析XML之pull解析
- LeetCode-617. Merge Two Binary Trees
- 仿微信viewpager滑动时指示条跟随…
- SpringMVC上传文件的三种方式
- POJ 2342 Anniversary party(树形DP)
- Share.js 一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点
- Java 开发环境配置
- banner轮播