在安卓开发中,接口回调是所用最多,也是应用最广泛的传值方式,它可以在同一个Activit的不同Fragme之间进行传值,
也可以在不同
Activit之间进行传值,现在就来简单说一下同一个Activit下的不同Fragme之间的传值问题,此文章适合初
学者,老鸟就不要看了,嘎嘎嘎————
第一步:创建回调接口类,例如:
public interface OnClie2 {
void onClin(String s);//参数类型为回调什么,就写什么类型
}
void onClin(String s);//参数类型为回调什么,就写什么类型
}
第二步:在要传值的Fragment内声明接口并写一个带接口参数的构造方法
private OnClie2 onClie2;//声明接口
public BlankFragment(OnClie2 onClie2) {
this.onClie2 = onClie2;
}
public BlankFragment(OnClie2 onClie2) {
this.onClie2 = onClie2;
}
第三步:在需要传值的地方调用接口来进行传值
例如:要传递一个集合中某个实体类的name
String name = list.get(position).getName();
//判空可根据情况来做
if (onClie2!=null) {
onClie2.onClin(name);
}
例如:要传递一个集合中某个实体类的name
String name = list.get(position).getName();
//判空可根据情况来做
if (onClie2!=null) {
onClie2.onClin(name);
}
第四步:在Fragment依附的MainActivity中实现接口,重写接口里面的方法,
并且new一个带接口参数的Fragment对象,此时s即为传过来的name
对s进行操作,传到第二个Fragment
并且new一个带接口参数的Fragment对象,此时s即为传过来的name
对s进行操作,传到第二个Fragment
//因为MainActivity实现了接口,所以它的对象this可以直接当作BlankFragment的参数
BlankFragment blankFragment=new BlankFragment(this);
BlankFragment blankFragment=new BlankFragment(this);
//重写接口内的方法
@Override
public void onClin(String s) {
public void onClin(String s) {
//此处是用第二个Fragment的对象调的其内的公共方法
blankFragment2.st(s);
blankFragment2.st(s);
//此为Fragment之间的跳转
replace(blankFragment2);
}
replace(blankFragment2);
}
第五步:在第二个接受数据的Fragment中,创建一个公共的构造方法并在外部进行接收,其数据便是name,
可以在onCreateView对其进行操作
private String myName;
//此myName即为传递过来的数值
public void st(String name){
myName=name;
}
可以在onCreateView对其进行操作
private String myName;
//此myName即为传递过来的数值
public void st(String name){
myName=name;
}
这个简单的接口回调就结束了,是不是感觉非常简单,嘎嘎嘎——————
所以一些初学者不要感觉很难,只要用心,一切都会变的非常简单