1. 程式人生 > >Android DataBinding錯誤記錄

Android DataBinding錯誤記錄

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 錯誤1
    android:layout_height="match_parent">

    <data>
        <!--<import type="android.view.View"/>-->
        <variable
name="viewmodel" 錯誤2 type="com.runqi.mvvm.viewmodel.MainViewModel"/>
</data> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <EditText android:id="@+id/name"
android:layout_width="match_parent" android:layout_height="wrap_content" android:addTextChangedListener="@{viewModel.nameChangeListerner}" android:hint="name"/>
<EditText android:id="@+id/pwd" android:layout_width="match_parent"
android:layout_height="wrap_content" android:addTextChangedListener="@{viewModel.pwdChangeListerner}" android:hint="pwd"/>
<Button android:id="@+id/login" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="@{viewModel.login}" 警告 android:text="login"/> </LinearLayout> </layout>

錯誤1 :app:processDebugResources AGPBI: {“kind”:”error”,”text”:”Error parsing XML: duplicate attribute”,”sources”:

刪除layout標籤中的android:layout_width和android:layout_height="match_parent

<layout xmlns:android="http://schemas.android.com/apk/res/android">

    <data>
        <variable
            name="task"
            type="com.pichardo.improvedtribble.models.Task" />
    </data>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

    </LinearLayout>

</layout>

錯誤2 msg:Identifiers must have user defined types from the XML file. viewModel is missing it

這個錯誤是因為data中宣告的variable與binding裡使用的名稱不一致造成的。

警告 Method references using ‘.’ is deprecated. Instead of ‘viewModel.login’, use ‘viewModel::login’

.這種方式已經廢棄了,需要使用::替換。