首页 > 解决方案 > 如何设置数据类的默认值

问题描述

我为我的片段创建了一个数据绑定。

// fragment_my
<layout ...>

    <data>

        <variable
            name="myData"
            type="com.example.myproject.MyData" />
    </data>

    ...
</layout>

// MyFragment
class MyFragment : Fragment() {

    private lateinit var binding: FragmentMyBinding

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        binding = DataBindingUtil.inflate(
            inflater, R.layout.fragment_my, container, false
        )
        Log.d(TAG, ${binding.myData.item})
        return binding.root
    }
}

// MyData
data class MyData(
    var item: String = "123"
)

但是当我运行我的项目时,它显示项目未正确初始化,并且它总是返回一个可选的可为空值。

标签: androidkotlin

解决方案


您应该在访问/使用数据之前绑定数据。

尝试这个:

binding = DataBindingUtil.inflate(
    inflater, R.layout.fragment_my, container, false
)
binding.myData = MyData()
Log.d(TAG, ${binding.myData.item})
return binding.root

binding.myData = MyData()在您的代码中丢失。

来源https ://developer.android.com/topic/libraries/data-binding/expressions#binding_data


推荐阅读