如教程5-3
如截图部分,看了5遍都没看懂,第一:在onClick()中这个mIButton的写法上网查了资料都没见过这种写法,用匿名内部类的方式好像也不是这么写的。第二:在onAttach()中,我知道用于Fragment关联到Activity后的参数传递,也知道可以强转,我看了好久就是不知道强转的意义是什么,能说再的详细点吗?第三:用setArgument的方式比这个简单多,我知道可以降低耦合性,但在什么情况下用接口回调更好。
正在回答
@Override public void onAttach(Context context) { super.onAttach(context); try { mIButton = (IButton) context; } catch (Exception e) { e.printStackTrace(); } } @Override public void onClick(View v) { mIButton.onFragmentBtnClick(((Button) v).getText().toString()); }
上面onFragmentBtnClick()方法中传进的就是String,之所以可以这样操作,是因为mIButton是IButton类型,IButton是自定义接口。由于是用回调,所以要先定义一个接口如下:
public interface IButton {
void onFragmentBtnClick(String text);
}
IButton接口是给activity用的,所以要在activity中给这里的接口变量赋值(代码即mIButton = (IButton) context),这里最好的处理办法就是我们要强制用户赋值。所以采用强转的方式,在fragment与activity相关联时,进行强转赋值。接下来就是在FragmentValues3中当在用户点击的时候,将结果回传给Activity了。
总结接口回调操作步骤:
1)定义接口
2)接口变量赋值
3)调用接口变量
4)在Activity中实现接口
优势,在不同界面中回传结果,回调是最好的解决方案。
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星