相关疑难解决方法(0)

未生成数据绑定类

我在我的项目中使用数据绑定,当使用时<layout>,<data>我的xml绑定类中没有生成.

例如,我有activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>    </data>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </RelativeLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

现在,如果我ActivityMainBinding在我的活动/片段中写入,则显示该类不可用的错误.但是<variable>在我的xml文件中包含它后,它能够生成ActivityMainBinding类.

Android Studio:2.1.3
Classpath:com.android.tools.build: grad :2.1.3
minSdkVersion 16
targetSdkVersion 24
buildToolsVersion 24.0.0

data-binding android android-databinding

70
推荐指数
9
解决办法
4万
查看次数

Android数据绑定:如何传递变量以包含布局

谷歌文档说,变量可以从包含布局传递到包含布局的绑定,但我无法使其工作,但是获取数据绑定错误****msg:标识符必须具有XML文件中的用户定义类型.处理程序缺少它.包含XML看起来像这样:

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

<data>
    <import type="com.example.FocusChangeHandler"/>

    <variable
        name="handler"
        type="FocusChangeHandler"/>
</data>

<!-- Some other views  --->

   <include
            android:id="@+id/inputs"
            layout="@layout/input_fields"
            bind:handler="@{handler}"/>        
</layout>
Run Code Online (Sandbox Code Playgroud)

包含的XML就像这样:

<layout xmlns:android="http://schemas.android.com/apk/res/android">
<EditText
   android:id="@+id/nameEdit"       
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"       
   android:onFocusChange="@{handler.onFocusChange}"/>
</layout>
Run Code Online (Sandbox Code Playgroud)

我能够通过生成的绑定类引用包含布局的视图,但传递变量不起作用.

android-databinding

17
推荐指数
3
解决办法
1万
查看次数

Android 数据绑定到片段

是否可以让数据绑定给我一个对活动布局内片段的引用?

我的活动在 FrameLayout 中有一个片段,我得到这样的数据绑定:

fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding: ActivityUxBinding = DataBindingUtil.setContentView(this, R.layout.activity_ux)
Run Code Online (Sandbox Code Playgroud)

自动生成的 ActivityUxBinding 不包含片段的成员,所以我仍然必须这样做:

arFragment = supportFragmentManager.findFragmentById(R.id.ux_fragment) as ArFragment
Run Code Online (Sandbox Code Playgroud)

有没有办法获得布局中指定类型的成员 uxFragment ?

作为参考,活动的布局:

<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <fragment android:name="edu.htw.cd.ar.objectdetect.sceneform.ArFragmentWithoutInstructions"
            android:id="@+id/ux_fragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/search_fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="16dp"
            app:srcCompat="@drawable/ic_search"
            app:elevation="6dp" /> <!-- https://material.io/design/environment/elevation.html -->
    </FrameLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

android android-fragments kotlin android-databinding

6
推荐指数
0
解决办法
623
查看次数