想问问现在用 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()
    }
}

}

写的我好难受啊

11861 次点击
所在节点    Android
91 条回复
xayoung
2018-09-27 11:32:24 +08:00
iOS 来问下,kotlin 会有 swift 那样重新学几遍的困境么? (几个项目经历了 2.1->2.2->3.0->4.1->4.2,打开 Xcode 面对成千上万个错误就想死)
GoodRainChen
2018-09-27 11:34:33 +08:00
@icris
还是你自己去试试吧,或者是因为后面插件又跟新了?
反正我这里直接 onCreate 里面直接用 savedInstanceState.getString("")
是会提示错误的:Only safe(?.)or non-null .....
bumz
2018-09-27 11:40:24 +08:00
@icris #75

1. 凶手也用菜刀,但是菜刀不止凶手用,大厨也用。暗器只有凶手用。
2. C# 已经快二十年了,在今天二十年的时间意味着什么已经不用多说了。
3. 专家设计的语言不见得好,好的语言也不见得是专家设计的。但是绝大多数专家设计的语言比绝大多数业余人士设计的语言好,绝大多数优秀的语言是专家设计的。前者是二者的因果关系,后者是相关性,请勿混为一谈。
icris
2018-09-27 11:42:27 +08:00
@GoodRainChen #82
savedInstanceState: Bundle?
view: View!
挑一个说到底,别跳着来。推荐测试语句 menuInflater.inflate(0, null),menuInflater 是 MenuInflater!
那么这样一个 Bundle? 的对象,我前几楼也说了,我复制一下:
「 Java 里的 onCreate 里面可以直接用 savedInstanceState 而不需要判断非空等第一次打开 Activity 报空指针。我觉得这个能力真是毫无用处。」
在 kotlin 里不能方便地报空指针对工作有什么不好的影响吗?
icris
2018-09-27 11:45:15 +08:00
@bumz #83
那么我要提一个问题了,为什么 Java 比 C# 好?
bumz
2018-09-27 11:58:52 +08:00
@icris #85 这就是另一个帖子了

简单来说 C# is sort of Java with reliability, productivity and security deleted.

例如 C# 没有 Checked exception (一个很多人恨的特性,但其实他们只是恨写出可靠的程序罢了)

再比如 C# 混乱的 IDisposable
icris
2018-09-27 12:06:33 +08:00
@bumz #86
我实际上还可以继续提问,为什么 C# 没有 reliability 而 Java 有 reliability,为什么 C# 没有 productivity 而 Java 有 productivity,为什么 C# 没有 security 而 Java 有 security,但是算了,if you say so.
zt1991616
2018-09-27 12:15:27 +08:00
Android 圈也和前端圈一样了?有啥好吵的,爱用用,不爱用别用,又没人强迫你
TheWalkingDead
2018-09-27 13:54:16 +08:00
用什么语言总体还是看公司需要,看 leader 安排,不过用小众语言的人总是自带优越感
Tyanboot
2018-09-28 01:40:57 +08:00
@xayoung 不会。只有实验性的功能才可能会被改掉,比如协程的支持。其他的用了这么久了还没有过破坏性改动。
icris
2018-09-28 23:32:17 +08:00
@TheWalkingDead #89
事实表明 Java 程序员才有优越感,上面不用 kotlin 的很多表示看不起 kotlin (「你们用吧,反正最后还是需要深入了解 java 」(试图表达一个 kotlin 程序员都不懂 Java 的意思)、「 Kotlin 是 IDE 公司设计的」( Java 大于一切,语法吊打 C#)、楼主所有发言)。
或者你是要表达 Java 在 Android 开发上算小众?毕竟现在 Google 的文档示例代码都把 kotlin 放前面,你这么说也没问题。

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

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

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

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

© 2021 V2EX