美文网首页
遇到一个kotlin的kotlinx找不到资源的问题

遇到一个kotlin的kotlinx找不到资源的问题

作者: o动感超人o | 来源:发表于2018-05-23 22:24 被阅读76次

    具体报错就是kotlinx.android.synthetic.main.xxx引入的资源在程序打包运行的时候报Unresolved reference:xxx的错误,因为我把xml放到其他的module里了,而本模块的Activity和他用到的xml并不是一个module,直接用kotlinx去使用这个控件就报错了,目前我的解决办法就是先用findViewById,以后kotlin应该会解决这个问题
    问题补充:这个问题在Fragment中比较常见,例如当您访问时btn_K,它需要getView().findViewById(R.id.btn_K),如果在Fragment的

        override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
            var rootView = inflater?.inflate(R.layout.fragment_card_selector, container, false)
            btn_K.setOnClickListener { Log.d(TAG, "onViewCreated(): hello world"); }
    
            return rootView
        }
    

    这个方法里调用btn_K资源肯定找不到,因为这个方法还没有返回rootView,解决方法是:

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        btn_K.setOnClickListener { Log.d(TAG, "onViewCreated(): hello world"); }
    }
    

    问题详情:
    https://stackoverflow.com/questions/34541650/nullpointerexception-when-trying-to-access-views-in-a-kotlin-fragment

    该问题的重点是kotlin这种方式的实现机制是:
    当您访问时btn_K,它需要getView().findViewById(R.id.btn_K)

    相关文章

      网友评论

          本文标题:遇到一个kotlin的kotlinx找不到资源的问题

          本文链接:https://www.haomeiwen.com/subject/uaidjftx.html