想问问现在用 kotlin 写 android 的多吗

2018-09-26 14:22:05 +08:00
 whitepoppy

class InTheVehicleFragment : FragmentCompat() { private val presenter = InTheVehiclePresenter(this)

companion object {
    fun newInstance(): InTheVehicleFragment {
        return InTheVehicleFragment()
    }
}

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    return inflater.inflate(R.layout.fragment_in_the_vehicle, container, false)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    presenter.setup()
    initView()
    initListener()
}

private fun initView() {
    //setInCarNum(25)
}

private fun initListener() {
    container_add_car_plate_num.setOnClickListener { presenter.gotoAddCarPlate() }
    container_car_open_order.setOnClickListener { presenter.gotoSerOrder("") }
}

fun httpError() {
    rcv_today_cars.visibility = View.GONE
    container_loading.visibility = View.GONE
    container_fail.visibility = View.VISIBLE
    container_fail.setOnClickListener({
        presenter.fetchHistoryCars()
    })
}

fun httpSuccess() {
    rcv_today_cars.visibility = View.VISIBLE
    container_fail.visibility = View.GONE
    container_loading.visibility = View.GONE
}

fun setTodayRv(mAdapter: InTheVehicleAdapter) {
    rcv_today_cars.setupVertical()
    rcv_today_cars.adapter = mAdapter
}

fun nodify() {
    rcv_today_cars.post {
        rcv_today_cars.adapter.notifyDataSetChanged()
    }
}

}

写的我好难受啊

11254 次点击
所在节点    Android
91 条回复
icris
2018-09-26 21:17:13 +08:00
@GoodRainChen #38
常见的模式是判断了再抛异常出去,直接报空指针可不常见(要说常见倒也常见,只是这种时候可算不上模式)。
建议打开 IDE 写几行试试看,别靠猜。推荐测试方法 getMenuInflater(),kotlin 里的 menuInflater,类型 MenuInflater!,看看不加问号报不报警告。
crist
2018-09-26 21:20:29 +08:00
哈哈哈哈哈哈哈哈哈
icris
2018-09-26 21:20:48 +08:00
@GoodRainChen #38
我也再复制一个正常的不接受空参数的方法的实现供参考
@Override
public ActionMode startSupportActionMode(@NonNull final ActionMode.Callback callback) {
if (callback == null) {
throw new IllegalArgumentException("ActionMode callback can not be null.");
}
...
}
abeholder
2018-09-26 21:31:49 +08:00
kotlin 挺好的啊,上半年的时候有几天下午在公司划水,就看了下官网的语法,然后把以前写的猜单词的小程序用 kotlin 实现了下。
感觉用起来比 java 真的要舒服很多诶。。
但是之后一直没用过,现在基本上 kotlin 的语法已经忘的差不多了。。
然后这个程序我也已经看不懂了。。。

https://github.com/abedormancy/ToyPrograms/blob/master/src/game/kotlin/GuessWord.kt

,有没 kotlin 大佬帮忙看下各种语法是否使用得当。。。0 0.
abeholder
2018-09-26 21:33:22 +08:00
@icris 大佬帮我瞅两眼 ,( ̄︶ ̄)↗
kaedea
2018-09-26 21:47:27 +08:00
协程都出稳定版了,为啥还不用...
cgpiao
2018-09-26 21:55:14 +08:00
根本原因还是思维的懒惰,你用 kotlin 还在用死板的 java 思想,当然怎么写都不爽。何不培养 kotlin 的思想呢,我觉得现代语言肯定比旧的语言好的,因为没有陈旧的历史包袱,不用做那些痛苦的妥协。
grantonzhuang
2018-09-26 22:15:31 +08:00
kt 好用的地方除了空值判断这个,各种默认 final 也挺好的。主要不在于技巧和写法,而在于思想。
grantonzhuang
2018-09-26 22:16:11 +08:00
如果只是简单的把 Java 的逻辑翻译成 kt,那确实没啥必要去换
icris
2018-09-26 22:34:03 +08:00
@abeholder #44
放到 IDEA 里,很多语法优化建议都会给出弱警告,比如一些变量提示可以私有的,比如 it.trim().length > 0 会提示 Replace size check with 'isNotEmpty' ,按提示会修改成 it.trim().isNotEmpty()。
还有一些无关紧要的不会提示的地方,比如 it.trim().isNotEmpty() 还可以改成 it.isNotBlank() , .filter { it == answer[0] }.length 可以改成 .count { it == answer[0] },这些方法都是只要看见有这个方法就知道怎么用的,我觉得没必要特别记忆,写个点想要什么就打什么,有方法就用,没方法的经常用的话也可以造个方法用,写得跟写英语一样就行了。
abeholder
2018-09-26 22:52:25 +08:00
@icris 谢谢大佬,给大佬捶背。╭(′_`)╭(′▽`)╯
bumz
2018-09-26 23:38:43 +08:00
Kotlin 是 IDE 公司设计的,Java 是程序语言领域的大师级人物设计的,于是你发现所有那些擅长 marketing 的叫嚣着替代 Java 的语言,其实最终都不如 Java
whitepoppy
2018-09-26 23:57:08 +08:00
@icris 思维方式不是怎么好改的啊 有方便的地方也有不好的地方 还是觉得那个顺手就用那个
icris
2018-09-27 00:04:40 +08:00
@bumz #52
这个于是起什么作用?为什么不如,哪不如?大师级人物干什么都是大师级,大师级人物的 NetBeans 怎么没人用呢?
huclengyue
2018-09-27 00:06:34 +08:00
kotlin 加 anko 真香
bumz
2018-09-27 01:20:32 +08:00
@icris #54 阅读偏正短语的时候要注意定语。

「程序语言领域的大师级人物」、「 IDE 公司」都是偏正短语。

「于是」后面的是按照现有的信息对未来的期望,这点从「最终」一词的使用就可以看出了。

既然是期望,「哪里」、「为什么」就是次要的问题。这就好比「百度出品」和「 Google 出品」的差别一样。
icris
2018-09-27 09:02:54 +08:00
@bumz #56
那原因不问,展望一下擅长 marketing 的叫嚣着替代 Java 的 C# 未来将会如何吧,毕竟是微软做的。
dagger2
2018-09-27 09:13:22 +08:00
我用 kotlin 就一个原因,kotlin 写出来的代码更漂亮,能让我开心。。。
fan123199
2018-09-27 09:17:46 +08:00
Kotlin 太好用了, 就用 function extension 和 入表达式,就够了。写起来飞快,简直是封装中的封装。然后一些 list,map 等的操作语法糖,让人爱不释手。

但是, 在我用了一段时间后还是发现一些问题。1,团队合作的问题。太简化,就需要理解。这个要看风格大家能不能互相接受。如果风格一致,那么大家都开心。2 , 搜索定位。 比如以前搜 setText,我可以知道哪里进行了文字设置。但现在不行了,全是等号。

Android 上很多调用时频繁且繁琐的,能简化一点代码就简化一些。每次写 java 版的 dialog 就感觉在浪费生命。

最后。Kotlin 大法好。
ayayui
2018-09-27 09:22:57 +08:00
能用 Kotlin 的时候我都不想用 Java

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/492765

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX