数据绑定;查看标签不正确,Android
Posted
技术标签:
【中文标题】数据绑定;查看标签不正确,Android【英文标题】:data binding; view tag isn't correct, Android 【发布时间】:2016-07-14 04:22:09 【问题描述】:我在数据绑定 android 教程中卡住了。我发现我在将数据绑定到视图时遇到问题。
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); <---
data_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_
android:layout_
android:paddingTop="16dp"
tools:showIn="@layout/content_main"
tools:context=".DataView">
<TextView
android:layout_
android:layout_
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)
删除绑定声明修复了问题,但我没有自定义视图。 :) 任意
【问题讨论】:
您也可以查看this教程供您参考。 【参考方案1】:这样改
<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_
android:layout_
android:paddingTop="16dp"
tools:showIn="@layout/content_main"
tools:context=".DataView">
<TextView
android:layout_
android:layout_
android:text="@dataSource.message" />
</com.example.kaz.simplebindingdemo.DataView>
</layout>
【讨论】:
【参考方案2】:xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
这些属性应该在顶部的<layout>
标签中
【讨论】:
以上是关于数据绑定;查看标签不正确,Android的主要内容,如果未能解决你的问题,请参考以下文章