Android学习--可选别名资源和fragment回调接口
来源:互联网 发布:it解决方案模板 编辑:程序博客网 时间:2024/06/06 09:29
在根据不同设备(手机或平板)生成不同的用户界面时可以用到可选别名资源。别名资源指在目录res/values/refs.xml里设定的资源如:
<resources>
<item name ="activity_masterdetail" type="layout">@layout/activity_fragment</item>
</resources>
其资源ID是R.layout.activity_masterdetail。注意,别名的type属性决定了资源ID属于什么内部类,即使存放在res/values/下,就像上面的资源ID依旧属于R.layout内部类。
而当需要创建一个可选别名资源时,则要在res目录下新建一个如values-sw600dp的目录,并在里面存放refs.xml。其中-sw600dp的意思是smallest width(最小宽度),其指的是屏幕的最小尺寸(与方向无关)。
wXXXdp ------ 有效宽度:宽度大于或等于XXXdp
hXXXdp ------ 有效高度:高度大于或等于XXXdp
swXXXdp ------ 最小宽度:宽度或高度(两者中最小的那个)大于或等于XXXdp
二、fragment回调接口
如果要开发一个fragment用来添加其他fragment到同一activity的FragmentManager上,我们的第一反应是直接在初始fragment上加一个监听器,通过监听器获取activity,再把新的fragment托管到activity上。这样做虽然行的通,但是这样一来初始fragment就必须知道托管activity是如何工作的,也就是说该fragment就再也无法作为独立的开发构件来使用了。
所以为了保持fragment的独立性,我们可以在fragment中定义回调接口,委托托管activity来完成那些不应由fragment处理的任务。托管activity将实现回调接口,履行托管fragment的任务。
下面例子中用Callbacks接口代指回调接口。要实现一个Callbacks接口,首先定义一个成员变量存放实现Callbacks接口的对象。然后将托管activity强制类型转换为Callbacks类型变量并复制给Callbacks类型变量。
强制类型转换activity并复制给Callbacks类型变量要在Fragment的生命周期onAttach(Activity activity)中处理,而在onDetach()中则应该将Callbacks变量设置为null。如下:
private Callbacks mCallbacks;
public interface Callbacks { void onCrimeSelected(Crime crime); } @Override public void onAttach(Activity activity){ //强制类型转换activity并复制给Callbacks super.onAttach(activity); mCallbacks = (Callbacks)activity; } @Override public void onDetach(){ //销毁方法中将Callbacks设为null super.onDetach(); mCallbacks = null; }
而实现回调接口则要在托管fragment的Activity中实现:
public class CrimeListActivity extends SingleFragmentActivity implements CrimeListFragment.Callbacks{ public void onCrimeSelected (Crime crime){ ............. }}
- Android学习--可选别名资源和fragment回调接口
- 47 Android fragment 接口回调
- Code Fragment-提供可选选项的接口胜于单一接口
- Android学习资源-retrofit,eventBus,butterknife,fragment
- 【swift 学习】第二课---类型转换,类型别名,元祖,可选类型,可选绑定,断言
- Android中Fragment和Activity之间的通信(含接口回调)
- Android Fragment使用和学习
- dnn学习-可选的dnn接口介绍
- Fragment和Activity通信中体现的接口回调
- view和fragment之间传输数据-接口回调方法
- Fragment学习之使用接口回调的方式实现Fragment与Activity通信
- Fragment学习之使用接口回调的方式实现Fragment与Activity通信
- Fragment接口回调 三 使用接口
- Fragment的接口回调
- Fragment(3)和其他Fragment之间交互--伟大的接口回调
- Android fragment接口通信
- android-接口回调学习
- Android学习资源和工具
- iOS GCD整理(一)
- jQuery 效果 - stop() 方法
- spring 实例初始化时机
- div拖动
- 计算圆周率到指定精度.
- Android学习--可选别名资源和fragment回调接口
- Android groovy
- 格式化数字保留两位小数
- centos7 安装rsyslog
- Android GridView详解
- 深入理解scrollView的contentOffset等属性转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/deta
- 真正的跑马灯效果
- DEVexpress表格验证 并弹出结果
- org.apache.commons.beanutils.PropertyUtils和org.apache.commons.beanutils.BeanUtils