sinat_26761191
sinat_26761191
2017-07-20 09:34
采纳率: 27.8%
浏览 6.9k
已采纳

kotlin在fragment中不能像activity中直接通过id调用控件了,有什么办法吗

kotlin中 在fragment中不能像activity中直接通过id调用控件了,有什么办法吗

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • metgo
    metgo 2017-07-20 10:21
    已采纳

    在fragment中复写这个 onCreateView的时候实例化view,用view去findViewById,语法可以参考下边的

    override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
            val view = inflater!!.inflate(R.layout.xxxx, container, false)
            val iv_card = view.findViewById(R.id.xxxx) as ImageView
            iv_card.setImageResource(xxxxxxxxx])
            return view
        }
    
    
    点赞 评论
  • u010732610
    vFirelonely 2017-10-12 06:19

    不能直接用id的原因,你xml没有载入,会导致使用id的时候会报空指针,如果需要使用,在onCreateView return view后,在onViewCreate函数中使用Id直接调用,onViewCreate会在onCreateView后执行

    点赞 14 评论
  • liangzp1990520
    Beam花弄 2017-12-21 15:31

    @vFirelonely 的方法是正确的,但是方法名称错了,应该是onViewCreated

    点赞 评论

相关推荐