实现Banner,TabLayout,XlistView
来源:互联网 发布:淘宝客服兼职 招聘吗 编辑:程序博客网 时间:2024/06/13 20:42
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { List<String> list = new ArrayList<String>(); private com.nostra13.universalimageloader.core.ImageLoader instance; String uri = "http://api.expoon.com/AppNews/getNewsList/type/2/p/1"; List<ListBean.DataBean> list2 = new ArrayList<ListBean.DataBean>(); int aa = 1; private MyAdapter adapter; String uri1; Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int qq = msg.what; switch (qq) { case 0: //创造方法实现加载图片 banner.setImageLoader(new MLoader()); //把集合传过去 banner.setImages(list); banner.start(); //banner点击事件 banner.setOnBannerListener(new OnBannerListener() { @Override public void OnBannerClick(int position) { Intent intent=new Intent(MainActivity.this,TwoActivity.class); intent.putExtra("title",list2.get(position).getNews_title()); intent.putExtra("id",list2.get(position).getNews_id()); intent.putExtra("image",list2.get(position).getPic_url()); intent.putExtra("summary",list2.get(position).getNews_summary()); startActivity(intent); // Toast.makeText(MainActivity.this,"++++++++++++++++"+position,Toast.LENGTH_LONG).show(); } }); break; case 1: adapter.notifyDataSetChanged(); uiComplete(); break; } } }; private Banner banner; private TabLayout tabLayout; private XListView xv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); banner = (Banner) findViewById(R.id.banner); ConnlDef(); tablayout_tag(); banner.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { tabLayout.setScrollPosition((position - 1) % 4, 1F, false); } @Override public void onPageScrollStateChanged(int state) { } }); xv = (XListView) findViewById(R.id.xlv); xv.setPullLoadEnable(true); //让XListView有上拉加载的功能; xv.setXListViewListener(MainActivity.this);// 接口回调要把接口实现类设置进去, MainActivity就是(XListViewListener)它的实现了 setUri(1); httpclick(); adapter = new MyAdapter(); xv.setAdapter(adapter); } private void tablayout_tag() { tabLayout = (TabLayout) findViewById(R.id.tablayout); tabLayout.setTabMode(TabLayout.MODE_FIXED); TabLayout.Tab tab1 = tabLayout.newTab().setText("全部"); tabLayout.addTab(tab1, true); TabLayout.Tab tab2 = tabLayout.newTab().setText("呵呵呵"); tabLayout.addTab(tab2, false); TabLayout.Tab tab3 = tabLayout.newTab().setText("嘻嘻嘻"); tabLayout.addTab(tab3, false); TabLayout.Tab tab4 = tabLayout.newTab().setText("嘿嘿嘿"); tabLayout.addTab(tab4, false); /*tabLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { View view1 = View.inflate(MainActivity.this, R.layout.activity_poper, null); PopupWindow popupWindow = new PopupWindow(view1, 100, 100); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.BLUE)); popupWindow.showAsDropDown(tabLayout, 70, -20); popupWindow.setOutsideTouchable(true); } });*/ tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { //tabLayout.setScrollPosition(0, 1F, true); View view1 = View.inflate(MainActivity.this, R.layout.activity_poper, null); PopupWindow popupWindow = new PopupWindow(view1, 100, 100); popupWindow.setBackgroundDrawable(new ColorDrawable(Color.BLUE)); popupWindow.showAsDropDown(tabLayout, 70, -20); popupWindow.setOutsideTouchable(true); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); } private void ConnlDef() { new Thread() { @Override public void run() { super.run(); try { URL url = new URL(uri); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line = null; StringBuffer sb = new StringBuffer(); while ((line = bufferedReader.readLine()) != null) { sb.append(line); } Gson gson = new Gson(); ImageBean imageBean = gson.fromJson(sb.toString(), ImageBean.class); List<ImageBean.DataBean> data = imageBean.getData(); for (int i = 0; i < data.size(); i++) { list.add(data.get(i).getPic_url()); } Message msg = new Message(); msg.what = 0; handler.sendMessage(msg); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } class MLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); instance.displayImage((String) path, imageView); } } public void setUri(int cc) { uri1 = "http://api.expoon.com/AppNews/getNewsList/type/1/p/" + cc; } public void httpclick() { new Thread() { @Override public void run() { super.run(); DefaultHttpClient defaultHttpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(uri1); try { SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier()); //得到服务器返回的数据; HttpResponse response = defaultHttpClient.execute(httpPost); //得到状态码 int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { //entiry 里面封装的数据; HttpEntity entity = response.getEntity(); //这个result就是json字符串,剩下的就是解析工作了; String result = EntityUtils.toString(entity); Gson gson = new Gson(); ListBean listBean = gson.fromJson(result, ListBean.class); List<ListBean.DataBean> aa = listBean.getData(); list2.addAll(aa); Message msg = new Message(); msg.what = 1; handler.sendMessage(msg); } } catch (IOException e) { e.printStackTrace(); } } }.start(); } @Override public void onRefresh() { list2.clear(); aa = 1; setUri(aa); httpclick(); } @Override public void onLoadMore() { aa++; setUri(aa); httpclick(); } class MyAdapter extends BaseAdapter { @Override public int getCount() { return list2.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { view = View.inflate(MainActivity.this, R.layout.activity_xlist, null); } ImageView iv = view.findViewById(R.id.iv_list); TextView tv = view.findViewById(R.id.tv_list); tv.setText(list2.get(i).getNews_title()); instance.displayImage(list2.get(i).getPic_url(), iv); return view; } } private void uiComplete() { xv.stopRefresh();//停止刷新 xv.stopLoadMore();//停止上拉加载更多 Date date = new Date(); //Calendar instance = Calendar.getInstance(); xv.setRefreshTime(date.getHours() + ";" + date.getMinutes() + ";" + date.getSeconds()); }}
阅读全文
0 0
- 实现Banner,TabLayout,XlistView
- TabLayout和banner与XLISTView混合运用
- TabLayout+XlistView
- handle发送get和post请求网络数据+多条目加载+banner+xlistview+TabLayout
- Tablayout与Viewpager里添加Xlistview实现上拉下拉
- Tablayout与XListView
- banner+xlistview+多条目展示
- xlistview+banner无限轮播
- TabLayout+Xlistview+第三方登录
- Banner轮播 + XlistView 网络获取数据
- XlistView刷新加载和Banner轮播
- 设置Xlistview在tablayout里面的写法
- 侧拉+TabLayout+轮播+XListView
- Banner实现
- 网络判断+xlistview上拉加载、下拉刷新+Tablayout +图片拖拽缩放+数据库存储 3、案例完成思路要求: 模块一:用fragment+viewpager+Tablayout实现页面
- Banner+DrawerLayout+Tablayout+PullTofresh+Fragment(Viewpage)
- Banner+DrawerLayout+Tablayout+PullTofresh+Fragment(Viewpage)
- XListView实现原理
- 数字图像的梯度概念(the gradient of the image)
- 系统间通信方式之(ActiveMQ的使用性能优化之冰火两重天5)(十六)
- RecyclerView 隐藏部分分割线
- 输入不同对象的姓名、性别、年龄、体重和住址等信息,并输出显示
- React+Nginx页面刷新报错问题
- 实现Banner,TabLayout,XlistView
- FFmpeg RGB数据添加BMP头
- Python中lxml模块的安装
- route路由
- 2017 CCPC 秦皇岛
- FLYMCU串口下载配置界面
- 相逢恨晚
- json异常之JsonMappingException
- ccextractor源码解析架构