gpt4 book ai didi

java - 数据绑定(bind);查看标签不正确,Android

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:23:39 26 4
gpt4 key购买 nike

我在数据绑定(bind) Android 教程中卡住了。我发现我在将数据绑定(bind)到 View 时遇到了问题。

 public class DataView extends FrameLayout {
private DataViewBinding binding;

public DataView (Context context, AttributeSet attrs) {
super(context,attrs);
}

@Override
protected void onFinishInflate()
{
super.onFinishInflate();
binding = DataViewBinding.bind(this); <---
}

@Override
protected void onAttachedToWindow()
{
super.onAttachedToWindow();
DataSource dataSource = DataSource.get("Data View");
binding.setDataSource(dataSource); <---
} }

数据 View .xml

<layout>
<data>
<variable
name="dataSource"
type="com.example.kaz.simplebindingdemo.DataSource" />
</data>
<com.example.kaz.simplebindingdemo.DataView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
tools:showIn="@layout/content_main"
tools:context=".DataView">

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{dataSource.message}" />
</com.example.kaz.simplebindingdemo.DataView>
</layout>

在渲染中我遇到了异常:

java.lang.RuntimeException: view tag isn't correct on view:null     at
com.example.kaz.simplebindingdemo.databinding.DataViewBinding.bind(DataViewBinding.java:123)
at
com.example.kaz.simplebindingdemo.databinding.DataViewBinding.bind(DataViewBinding.java:119)
at
com.example.kaz.simplebindingdemo.DataView.onFinishInflate(DataView.java:22)
at
android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:844)
at
android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:811) at
android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at
android.view.LayoutInflater.inflate(LayoutInflater.java:394)

删除绑定(bind)声明解决了问题,但我没有自定义 View 。 :)任何

最佳答案

这样改

<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="dataSource"
type="com.example.kaz.simplebindingdemo.DataSource" />
</data>
<com.example.kaz.simplebindingdemo.DataView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
tools:showIn="@layout/content_main"
tools:context=".DataView">

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{dataSource.message}" />
</com.example.kaz.simplebindingdemo.DataView>
</layout>

关于java - 数据绑定(bind);查看标签不正确,Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36236416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com