xlistview...
来源:互联网 发布:淘宝如何卡密自动发货 编辑:程序博客网 时间:2024/06/05 03:05
public class Frag1 extends Fragment implements XListView.IXListViewListener{ private View view; private ArrayList<ImageView> listIVV=new ArrayList<>();//圆点集合 int[] imgg={R.drawable.img1,R.drawable.img2,R.drawable.img3};//轮播图片数组 private LinearLayout ll_frag1; private ViewPager vp_frag1; private XListView xlv_frag1; private int count=10;//一次加载10条数据 String url="http://japi.juhe.cn/comic/book?key=3206e5516cba295eb14cb65b25a52b57"; ArrayList<Bean> list=new ArrayList<>(); XlvAdapter xa; MyDao dao; //handler倒计时跳转 Handler handler=new Handler() { @Override public void handleMessage(Message msg) { int postion=vp_frag1.getCurrentItem(); postion++; vp_frag1.setCurrentItem(postion); handler.sendEmptyMessageDelayed(0,3000); } }; private JingTai jt; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = View.inflate(getActivity(), R.layout.frag1,null); init(); initDate(); inid(); //注册(广播判断网络) jt = new JingTai(); IntentFilter filter=new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); getActivity().registerReceiver(jt,filter); return view; } /** * 调用请求数据的方法 */ private void inid() { Frag1Api1 fa1=new Frag1Api1(); fa1.execute(url); } /** * 初始化控件 */ private void init() { dao=new MyDao(getContext()); vp_frag1 = view.findViewById(R.id.vp_frag1);//viewpager(轮播) xlv_frag1=view.findViewById(R.id.xlv_frag1);//xlistview(展示数据) ll_frag1 = view.findViewById(R.id.ll_frag1);//LinearLayout(圆点) xlv_frag1.setPullLoadEnable(true);//xlistview可用 xlv_frag1.setXListViewListener(this);//类实现接口,必须给接口赋值才能使用! //自动轮播(无限)的适配器(图片) VpAdapter va=new VpAdapter(getContext()); vp_frag1.setAdapter(va); vp_frag1.setCurrentItem(100000);//默认值 vp_frag1.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //自动轮播 for (int i = 0; i < listIVV.size(); i++) { if(i == position%3) { listIVV.get(i).setImageResource(R.drawable.dot_red); } else { listIVV.get(i).setImageResource(R.drawable.dot_green); } } } @Override public void onPageScrollStateChanged(int state) { } }); //倒计时 handler.sendEmptyMessageDelayed(0,3000); } /** * 添加圆点 */ public void initDate() { for (int i = 0; i < imgg.length; i++) { ImageView iv_frag1=new ImageView(getContext()); if(i == 0) { iv_frag1.setImageResource(R.drawable.dot_red); } else { iv_frag1.setImageResource(R.drawable.dot_green); } LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(20,20); lp.setMargins(5,0,5,10); ll_frag1.addView(iv_frag1,lp); listIVV.add(iv_frag1); } } class Frag1Api1 extends AsyncTask<String,Integer,String> { //请求 @Override protected String doInBackground(String... strings) { StringBuffer sb=new StringBuffer(); try { URL url=new URL(strings[0]); HttpURLConnection huc= (HttpURLConnection) url.openConnection(); if(200 == huc.getResponseCode()) { InputStream is=huc.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(is)); String line=null; while((line = br.readLine()) != null) { sb.append(line); } } } catch (Exception e) { e.printStackTrace(); } return sb.toString(); } /** * 解析 * @param s */ @Override protected void onPostExecute(String s) { super.onPostExecute(s); try { JSONObject obj=new JSONObject(s); JSONObject resultO=obj.getJSONObject("result"); JSONArray bookA=resultO.getJSONArray("bookList"); if(bookA != null && bookA.length() > 0) { for (int i = 0; i < bookA.length(); i++) { JSONObject obj_b= (JSONObject) bookA.get(i); Bean b=new Bean(); b.name=obj_b.optString("name"); b.area=obj_b.optString("area"); b.coverImg=obj_b.optString("coverImg"); list.add(b); System.out.println(list); //存数据库 dao.insert(b.name,b.area,b.coverImg); System.out.println("====数据库=="+b.name+b.coverImg); } } } catch (JSONException e) { e.printStackTrace(); } if(list != null) { if(xa == null) { //添加适配器 xa=new XlvAdapter(getActivity(),list); xlv_frag1.setAdapter(xa); } else { //适配器刷新 xa.notifyDataSetChanged(); } xlv_frag1.stopRefresh();//停止刷新 xlv_frag1.stopLoadMore();//停止加载更多 } } } /** * 上拉刷新 */ @Override public void onRefresh() { //如果存放数据的集合不为空 if(list != null) { //清空集合 list.clear(); //调用异步请求数据 Frag1Api1 fa1=new Frag1Api1(); fa1.execute(url); } } /** * 下拉加载 */ @Override public void onLoadMore() { //拼接的接口 String urll=url+"&skip="+count; count+=10;//(自定义,初始值10)一次加载10条数据 //调用异步请求数据 Frag1Api1 fa1=new Frag1Api1(); fa1.execute(urll);//新的url } /** * 接收 判断网络 */ class JingTai extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String str=intent.getAction(); if(str.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { ConnectivityManager cm= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info=cm.getActiveNetworkInfo(); if(info != null && info.isAvailable()) { // name="WiFi网络" String name=info.getTypeName(); if(info.getType() == ConnectivityManager.TYPE_WIFI) { //WIFI网络 Toast.makeText(context, "WiFi网络", Toast.LENGTH_SHORT).show(); } else if(info.getType() == ConnectivityManager.TYPE_ETHERNET) { //有线网络 Toast.makeText(context, "有线网络", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(context, "没网", Toast.LENGTH_SHORT).show(); //没网,调用数据库 list = dao.select(); } } } } @Override public void onDestroy() { super.onDestroy(); if(jt!=null) { getActivity().unregisterReceiver(jt); } }}
阅读全文
1 0
- XListView
- XListView
- Xlistview
- XListView
- xListView
- XListView
- xlistview
- xListView
- XlistView
- xlistview
- xlistview
- XListView
- xlistview
- xListview
- XListView
- XListView
- xlistview
- xlistview
- Gym
- Leetcode566. Reshape the Matrix
- oracle组合索引
- Oracle与Mysql区别简述
- 图像分割“The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation”
- xlistview...
- 用python抓取表格数据并导出到excel文件中
- android 集成RN填坑
- 路由器的两个端口上配置相同的网段
- 圆等分成三个扇形菜单
- Tensorflow的学习(第一篇)
- 进程管理之fork函数
- git版本管理架构
- Java socket通信