视图和参数在 android kotlin 中返回 null

View and paramater is returning null in android kotlin

我有一个片段,我正在从 activity 向它发送数据(Params,即 url 作为来自 activity 的字符串),但在 onCreateView 中它是(Params)显示 null 并且还查看为 null 我尝试了 bundle 方法,它也不起作用,代码是这样的。

private const val ARG_PARAM1 = "url"
private var Arg2 = ""
var mView: View? = null


class FragmentDisplayImage : Fragment() {

    private var param1: String? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        arguments?.let {


            param1 = it.getString("url")
            Arg2 = param1.toString()
            

//            Toast.makeText(context, param1.toString() , Toast.LENGTH_SHORT).show()
        }

    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        super.onCreateView(inflater, container, savedInstanceState);
        var a =this.getView()
        var image= view?.findViewById<ImageView>(R.id.Fragimage)
        Picasso.get().load(Arg2).resize(700, 700).centerCrop().into(image);
        return inflater.inflate(R.layout.fragment_display_image, container, false)

    }

如何在 oncreateView 中获取 param1 值以及如何解决这个 image/view 给出 null

onCreateView 方法应该return 视图。你在那里得到 null 因为在创建视图之前使用 getView 不能给你视图。如果您将其更改为 requireView,它不会为空,但会引发异常。

由于您使用的是 findViewById 而不是绑定,因此您必须覆盖 onViewCreated 该方法包含一个参数 view.

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

   override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        var image= view.findViewById<ImageView>(R.id.Fragimage)
        Picasso.get().load(Arg2).resize(700, 700).centerCrop().into(image);
    }