android - 如何设置数据类的默认值
问题描述
我为我的片段创建了一个数据绑定。
// 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"
)
但是当我运行我的项目时,它显示项目未正确初始化,并且它总是返回一个可选的可为空值。
解决方案
您应该在访问/使用数据之前绑定数据。
尝试这个:
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
推荐阅读
- google-maps - Google Places API - 地点详细信息查找的“place_id”结果不正确
- swagger-editor - 为什么 Swagger Editor 不发送 Cookie 标头?
- java - FileDescriptor.in 与 System.in
- android - mapping.txt 中的数字部分是什么
- java - 通过 selenium 在 paytm 主页上发起搜索的问题
- java - when an item in an out of the 2 spinner view is selected, other should be auto filled. 所有这些仅使用 assets 文件夹中的本地 json 文件
- android - 将两部分包名称重命名为三部分
- javascript - 如何通过回调发送到特定的套接字?
- python - Django:为什么我的表单发送 POST 数据但返回 request.method GET?
- reactjs - React .Net Core 不允许渲染根组件