安卓实习期间整理知识点(二)
来源:互联网 发布:电脑锣编程视频 编辑:程序博客网 时间:2024/09/21 08:55
安卓实习期间整理知识点(二)
View的setTag()妙用
- 找到View的对象后,使用setTag后,在监听器中不必再与id比对,只需使用getTag()
实例代码
btnHome.setTag(Constant.TAG_NEWS); btnLike.setTag(Constant.TAG_DATE); btnPerson.setTag(Constant.TAG_PERSON); ... btnHome.setOnClickListener(this); btnLike.setOnClickListener(this); btnPerson.setOnClickListener(this); ... @Override public void onClick(View v) { int tag = (Integer) v.getTag(); switch (tag) { case Constant.TAG_NEWS: break; case Constant.TAG_DATE: break; case Constant.TAG_PERSON: break; } }
实现ViewPager与Button相结合的总结
中间层类用到的类
- FragmentActivity:Activity的子类
- ViewPager:用于加载Fragment,相当于swing中的Frame
- FragmentPagerAdapter:用于处理页面变化显示转换
- Fragment:用于显示数据,相当于swing中的Panel
- OnPageChangeListener:用于处理页面变化时带动的额外变化
封装HeadView与BottomBar
- 上层HeadView:用于封装菜单栏,提供外部的改变外观方法,内部自己进行初始化
- 中间ViewPager:用于切换多个Fragment,在切换的时候相应得变换HeadView与BottomBar
- 下层BottomBar:用于封装底部菜单,底部的按钮实现监听器,同时能触摸变换中间ViewPager的显示
实例代码
// BottomBar中修改Button状态的方法public void setSelectedState(int index) { if (index != -1 && onItemChangedListener != null) { int size = mItemList.size(); if (size > index) { ImageView view = mItemList.get(index); Integer tag = index; recoverBottomBar(); view.setEnabled(false); if (Constant.TAG_NEWS == (Integer) view.getTag()) { view.setImageResource(R.drawable.ic_tab_find_pressed); } else if (Constant.TAG_DATE == (Integer) view.getTag()) { view.setImageResource(R.drawable.ic_tab_date_pressed); } else if (Constant.TAG_PERSON == (Integer) view.getTag()) { view.setImageResource(R.drawable.ic_tab_me_pressed); } lastButton = index; mSelectedState = index; } onItemChangedListener.onItemChanged(index); } }
// FragmentPagerAdapter中的方法@Override public Fragment getItem(int position) { switch (position) { case INDEX_NEWS: mFragment = new NewsFragment(); break; case INDEX_DATE: mFragment = new DateFragment(); break; case INDEX_MY: mFragment = new PersonCenterFragment(); break; } return mFragment; }
// onChangeListener中的方法@Override public void onPageSelected(int position) { // mSimpleIndicatorView.onPageSelected(position); mCurrentIndex = position; mBottomBar.setSelectedState(position); switch (position) { case INDEX_NEWS: mHeaderView.setHeaderTitle(R.string.title_feed); break; case INDEX_DATE: mHeaderView.setHeaderTitle(R.string.title_social); break; case INDEX_MY: mHeaderView.setHeaderTitle(R.string.title_person_center); break; default: break; } }
0 0
- 安卓实习期间整理知识点(二)
- 安卓实习期间整理知识点(一)
- 安卓实习期间整理知识点(三)
- 安卓实习期间整理知识点(四)
- 安卓实习期间整理知识点(五)
- 安卓实习期间整理知识点(六)
- 安卓实习期间整理知识点(七)
- 安卓实习期间整理知识点(八)
- 安卓实习期间整理知识点(九)
- 安卓实习期间整理知识点(十)
- 安卓实习期间整理知识点(十一)
- 安卓实习期间整理知识点(十二)
- 安卓实习期间整理知识点(十三)
- 安卓实习期间整理知识点(十四)
- 安卓实习期间整理知识点(十五)
- 安卓技术知识点整理
- Android知识点整理(二)
- Android知识点整理(二)
- 列出JDK中常用的Java包
- kuangbin群赛-1002-Repeat Number
- DestroyWindow 、PostNcDestroy
- 角决:Unable to execute dex: java.nio.BufferOverflowException.
- 十大数据帮你玩转移动广告
- 安卓实习期间整理知识点(二)
- css+javascript网页抖动图标、抖动制作教程,输入抖动命令js执行命令让网页抖动起来(详细版)
- C++课程设计
- jsp页面包含验证码(含有代码)
- 习题1-4
- start_kernel函数及init进程创建的简单分析
- HTTPS URL中解析过程中出现的问题
- 051.12
- 进程间通信--管道、命名管道、FIFO