kotlin技巧和细节整理
16lz
2021-01-26
整理一些kotlin小技巧和遇到的一些从java转到kotlin需要注意的一些小细节。
1.扩展函数
用Java写android时一般都是写一些Utils类,里面写一些常用到的静态方法,可以直接类名.method(),例如Toast方法:
java:
public static void showT(Context context, String msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();}/** * show Toast (default short) * * @param resId resId */public static void showT(Context context, int resId) { Toast.makeText(context, resId, Toast.LENGTH_SHORT).show();}
用kotlin可以通过扩展Context类的方式,加入一个toast()方法,使得在有上下文的地方可以方便调用:
fun Context.toast(message: String, duration: Int = Toast.LENGTH_SHORT) { Toast.makeText(this, message, duration).show()}
这种公共方法可以写在任意工具类里,一般放到package/util/下面的文件中,下面是在Activity中的用法:
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) toast("sss")}
注意在Fragment中需要加上context:
activity.toast(myString)
这个activity相当于调用当前Fragment的this.getActivity();
2.把一个array转成list
val otherAdv = arrayOf("DVBOTT_HD_70004000", "DVBOTT_HD_70004100", "DVBOTT_HD_70004200")var codes = Arrays.asList(*otherAdv)
注意需要加个*
3.设置回调
java:
public interface OnEventListener { void onEvent(T t);}public void setOnEventListener(OnEventListener onEventListener) { this.onEventListener = onEventListener;}setOnEventListener(new OnEventListener() { @Override public void onEvent(Integer integer) { ... } });
kotlin:
interface OnEventListener { fun onEvent(t: T)}setOnEventListener(object : OnEventListener { override fun onEvent(t: Int) { ... } })
更多相关文章
- android 小练习(一) ---仿微信UI主界面
- Android面试题小结
- Android(安卓)Window与WindowManager 理解与源码分析
- android:OKHttp的使用
- Android倒计时神器(CountDownTimer)
- Android复习笔记(6) -BrodCastReceiver (广播接收者
- android 关于Toast重复显示解决方法
- .Net程序员玩转Android开发---(20)Android绑定服务
- linux chrome运行android应用方法