XlistView 加载头部ViewPager 网络请求数据 存入数据库
来源:互联网 发布:pnp网络摄像机软件 编辑:程序博客网 时间:2024/06/09 21:43
public class MainActivity extends AppCompatActivity { private XListView xlv; List<Da.StoriesBean> list; private ViewPager vp3; private List<ImageView> viewList; private Da da; private View view; // 线程 Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; private BeanDao dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 找控件 xlv = (XListView) findViewById(R.id.xlv3); list = new ArrayList<Da.StoriesBean>(); // 实例化dao dao = new BeanDao(this); // 初始化数据 initData(); // 找控件并加载头部布局 view = View.inflate(MainActivity.this, R.layout.vp3_item,null); xlv.addHeaderView(view); // 设置允许下拉 上拉 xlv.setPullRefreshEnable(true); xlv.setPullLoadEnable(true); // 监听事件 xlv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { handler.postDelayed(new Runnable() { @Override public void run() { initData(); xlv.stopRefresh(); } },3000); } @Override public void onLoadMore() { handler.postDelayed(new Runnable() { @Override public void run() { initData(); xlv.stopLoadMore(); } },3000); } }); } private void initData() { // 异步任务 new AsyncTask<String,Integer,String>(){ @Override protected void onPostExecute(String s) { MyAdapter adapter = new MyAdapter(); xlv.setAdapter(adapter); // 把返回的view赋值给初始化数据的方法 view = initViewPager(); // 添加数据库 dao.addSb(da.getStories()); dao.addTb(da.getTop_stories()); super.onPostExecute(s); } @Override protected String doInBackground(String... strings) { getData(); ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this); ImageLoader.getInstance().init(configuration); return null; } }.execute(); } private View initViewPager() { vp3 = view.findViewById(R.id.vp3); getViewData(); MyPagerAdaPter myPagerAdaPter = new MyPagerAdaPter(); vp3.setAdapter(myPagerAdaPter); final TextView vp3_tv = view.findViewById(R.id.vp3_tv); if(da != null){ // 设置ViewPager上面的文字 vp3_tv.setText(da.getTop_stories().get(0).getTitle()); } vp3.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float positionOffset, int positionOffsetPixels) { // 文字跟着图片变换 vp3_tv.setText(da.getTop_stories().get(i).getTitle()); } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); return view; } private void getViewData() { viewList = new ArrayList<ImageView>(); if(da != null){ // 如果da不等于空 遍历Top 循环添加图片 for (int i = 0; i <da.getTop_stories().size() ; i++) { ImageView iv = new ImageView(MainActivity.this); iv.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(da.getTop_stories().get(i).getImage(),iv); viewList.add(iv); } } } private void getData() { try { // 网络请求数据 URL url = new URL("https:/"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); int code = conn.getResponseCode(); if(code == 200){ Gson gson = new Gson(); da = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),Da.class); list = da.getStories(); } } catch (Exception e) { e.printStackTrace(); } } class MyAdapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder holder; if(view == null){ holder = new ViewHolder(); view = View.inflate(MainActivity.this,R.layout.xlv_item,null); holder.xlv3_image = view.findViewById(R.id.xlv3_image); holder.xlv3_title = view.findViewById(R.id.xlv3_title); view.setTag(holder); }else{ holder = (ViewHolder) view.getTag(); } holder.xlv3_title.setText(list.get(i).getTitle()); ImageLoader.getInstance().displayImage(list.get(i).getImages().get(0),holder.xlv3_image); return view; } } class ViewHolder{ ImageView xlv3_image; TextView xlv3_title; } class MyPagerAdaPter extends PagerAdapter{ @Override public int getCount() { return da.getTop_stories().size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) {// super.destroyItem(container, position, object); container.removeView((View) object); } }}
阅读全文
0 0
- XlistView 加载头部ViewPager 网络请求数据 存入数据库
- XListView请求网络数据
- XListView请求网络数据
- XListView请求网络数据
- XListView请求网络数据
- 网络数据请求XListView展示
- 网络请求+XListView展示数据
- xlistview网络请求数据以及添加headerview_自动轮播viewpager控件
- 网络数据请求展示为无限轮播图 ViewPager+XListView+Fragment+ImageLoader
- xlistview 网络请求+加载+分页方法
- 网络请求xml,xListView加载更新
- 新XListView连接网络请求数据
- XListView请求网络数据的使用
- 使用 Xlistview 展示网络请求数据
- pull解析请求网络的数据(带分页加载,刷新) xlistview HttpUtils
- 无线轮播+GET网络请求数据+xlistview+多条目加载
- handle发送get和post请求网络数据+多条目加载+banner+xlistview+TabLayout
- 网络判断+网络请求+TabLayout+XListview+多条目加载.
- hdu6103Kirinriki(尺取法)
- POJ.2763 Housewife Wind ( 边权树链剖分 线段树维护区间和 )
- C++ 字符串转换
- 模拟 最长上升子串
- POJ 3074 Sudoku 转化精确覆盖问题DLX
- XlistView 加载头部ViewPager 网络请求数据 存入数据库
- 量化交易,未来互联网金融的发展趋势
- sleep,yield,join,notify,wait,notifyAll区别
- MAC上创建局域网git项目仓库
- hiho 1553区间统计 莫队算法+分块思想
- 【C++学习】通过输入数来确定一个数组的动态大小
- 骇客代码雨!终端一键下代码雨教程。黑客帝国代码流
- mysql 多表更新
- myeclipse删除hibernate插件,不是删除hibernate框架