kotlin 的事件监听(Fragment 和 Activity 不同)
2017-12-28 10:49
459 查看
前言
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。
JetBrains,作为目前广受欢迎的Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。
Kotlin已正式成为Android官方支持开发语言。
事件监听的坑
java 需要关心 到对应的控件上才可以设置监听Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } });
但是 使用kotlin 就不用那么麻烦了 ,直接找到控件的id 直接设置 监听 ,当然在 Activity 中很简单
btn.setOnClickListener(View.OnClickListener { }) } 就那么简单 。 下面最重要的来了, 当我们习惯使用 java 来写 Fragment 中的 事件监听的时候 ,这就坑大了
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(getViewId(), null);
bind = ButterKnife.bind(this, view);
initView();
initListenner();
return view ;
}
以上是java 代码 ,我们习惯 在return view 之前 做 initListener(),java 可以 没有报空指针,但是在 kotlin 中 会暴 空指针 ,那怎么解决呢,相信大家早已经很 0 疼了 ,那么我就来告诉大家吧, 0疼 的我 写下了以下代码 完成事件监听
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initView()
initListener()
}
“`
你不注意可能看不出来 ,因为 kotlin 中的fragment 中有 两个方法
一个是 onCreateView () ,一个是onViewCreate()方法 ,这个方法在onCreateView 中return view 之后才调用。 这下明白了吧 ,
我们必须在执行完onCreateView 中的 return view 之后 才能 initListenner () ;
提供一张图 对比以下
这个坑害的我们 好苦 啊 。
相关文章推荐
- Android开发:监听当前View的左右滑动事件,并返回给当前的activity或者fragment
- Fragment监听返回键(Fragment响应Activity的onKeyDown事件)Kotlin版
- 在Activity/Fragment中设置搜索键的监听事件
- 如何在不同的Activity中实现同样的布局,并且实现同样布局中的事件?(Fragment)
- Android 自定义Dialog类,并在Activity中实现按钮监听事件
- Android Kotlin入门,以及Kotlin的简单写法和监听事件。
- Android开发实现Fragment监听返回键事件功能的方法
- 在一个activity中不同的fragment中加载百度地图时,百度地图重合叠加覆盖的解决方案
- Fragment从入门到精通之Activity中响应Fragment中的事件③
- Activity搭载多个fragment中webview返回事件的处理
- android activity监听加载完毕事件
- Android FragmentTabhost 监听tab点击事件
- js 事件模型中不同浏览器的监听和解除监听方式参考
- Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
- 在适配器Adapter中回调他的点击事件到activity或者fragment当中
- Android中Preference的使用以及监听事件分析 及 PreferenceFragment 的使用
- 关于fragment内的监听事件
- activity与fragment---监听fragment返回键,fragment中横竖屏切换
- Fragment中监听事件
- BaseFragment onClick中点击事件跳转到Activity