相关疑难解决方法(0)

如何使用Fragment进行数据绑定

我正在尝试从官方谷歌文档https://developer.android.com/tools/data-binding/guide.html关注数据绑定示例

除了我试图将数据绑定应用于片段,而不是活动.

编译时我目前得到的错误是

Error:(37, 27) No resource type specified (at 'text' with value '@{marsdata.martianSols}.

onCreate 对于片段看起来像这样:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    MartianDataBinding binding = MartianDataBinding.inflate(getActivity().getLayoutInflater());
    binding.setMarsdata(this);
}
Run Code Online (Sandbox Code Playgroud)

onCreateView 对于片段看起来像这样:

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    return inflater.inflate(R.layout.martian_data, container, false);
}
Run Code Online (Sandbox Code Playgroud)

我的片段布局文件的部分内容如下所示:

<?xml version="1.0" encoding="utf-8"?>

<layout xmlns:android="http://schemas.android.com/apk/res/android">
    <data>
        <variable
            name="marsdata"
            type="uk.co.darkruby.app.myapp.MarsDataProvider" />
    </data>
...

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="@{marsdata.martianSols}"
        />

    </RelativeLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

我怀疑是MartianDataBinding不知道它应该绑定哪个布局文件 - 因此错误.有什么建议?

android android-fragments android-databinding

159
推荐指数
10
解决办法
8万
查看次数

简单的Android RecyclerView示例

我使用Android制作了几次项目列表RecyclerView,但这是一个相当复杂的过程.通过众多教程中的一个在线工作(这个,这个,很好),但我正在寻找一个简单的例子,我可以复制和粘贴以快速启动和运行.只需要以下功能:

  • 垂直布局
  • 每行一个TextView
  • 响应点击事件

因为我多次希望这样,所以我最终决定在下面给出答案以供我将来参考和你的.

android android-recyclerview

133
推荐指数
6
解决办法
15万
查看次数

Android - DataBinding - 如何以及何时生成绑定类?

数据绑定指南

  By default, a Binding class will be generated based on the name of the layout 
file, converting it to Pascal case and suffixing “Binding” to it. 
The above layout file was activity_main.xml so the generate class was ActivityMainBinding.
Run Code Online (Sandbox Code Playgroud)

什么时候会生成Binding类,比如说ActivityMainBinding.我有编译时错误."无法解析ActivityMainBinding".

ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.谢谢

data-binding android

66
推荐指数
5
解决办法
5万
查看次数

无法解析Android数据绑定类

使用数据绑定时,我无法MainActivityBinding 按照数据绑定指南获取类

我的布局名称是activity_main.xml.我也看到了Android - DataBinding - 如何以及何时生成Binding类?但它无法帮助我.

data-binding android android-databinding

44
推荐指数
10
解决办法
5万
查看次数

android:数据绑定错误:找不到符号类

我开始使用DataBinding功能了.我面临着问题.

错误:(21,9)错误:找不到符号类ContactListActivityBinding

build.gradle(模块:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.letsnurture.ln_202.databindingdemo"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}
Run Code Online (Sandbox Code Playgroud)

ContactListActivity.java

import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.letsnurture.ln_202.databindingdemo.model.Contact; …
Run Code Online (Sandbox Code Playgroud)

android android-databinding

35
推荐指数
10
解决办法
6万
查看次数

使用DataBinding时,Android Studio无法生成Binding类

  • Android Studio:3.1.0,3.1.1
  • Gradle:4.4
  • 构建工具:3.1.0

我正在使用DataBinding库.当我将布局文件添加到项目中或将任何视图添加到布局文件中时,Android Studio无法为布局生成Binding类,直到重建项目为止.

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <data>

        <variable
            name="viewModel"
            type="com.qk365.thweeks.MainViewModel" />
    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.TabLayout
            android:id="@+id/main_tab"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:background="@android:color/white"
            android:elevation="5dp"
            app:tabGravity="fill"
            app:tabIndicatorHeight="0dp"
            app:tabMode="fixed"
            app:tabSelectedTextColor="#7343ea"
            app:tabTextAppearance="@style/TextAppearance.Design.Tab"
            app:tabTextColor="#181818" />

        <android.support.v4.view.ViewPager
            android:id="@+id/main_viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@id/main_tab">

        </android.support.v4.view.ViewPager>

    </RelativeLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

我检查了Android Studio日志,当布局文​​件发生变化时,总会有错误信息.

2018-04-17 11:20:01,699 [e-1024-b02]  ERROR - .intellij.psi.impl.ElementBase - Element: class com.intellij.psi.impl.source.xml.XmlFileImpl because: different providers: SingleRootFileViewProvider{myVirtualFile=file://E:/AndroidStudioProjects/thweeks/module-order/src/main/res/layout/order_fragment_pick_up_order.xml, content=VirtualFileContent{size=2845}}(5200996b); SingleRootFileViewProvider{myVirtualFile=file://E:/AndroidStudioProjects/thweeks/module-order/src/main/res/layout/order_fragment_pick_up_order.xml, content=VirtualFileContent{size=2845}}(398a3993)
invalidated at: see attachment 
com.intellij.psi.PsiInvalidElementAccessException: Element: class com.intellij.psi.impl.source.xml.XmlFileImpl because: different providers: SingleRootFileViewProvider{myVirtualFile=file://E:/AndroidStudioProjects/thweeks/module-order/src/main/res/layout/order_fragment_pick_up_order.xml, content=VirtualFileContent{size=2845}}(5200996b); SingleRootFileViewProvider{myVirtualFile=file://E:/AndroidStudioProjects/thweeks/module-order/src/main/res/layout/order_fragment_pick_up_order.xml, content=VirtualFileContent{size=2845}}(398a3993) …
Run Code Online (Sandbox Code Playgroud)

android-studio android-databinding

11
推荐指数
2
解决办法
3843
查看次数

Android Databinding DatabindingUtil与绑定类

我想知道以下有什么区别:

binding = DataBindingUtil.inflate(inflater, R.layout.drawer_item_primary, parent, false);
Run Code Online (Sandbox Code Playgroud)

VS

binding = DrawerItemPrimaryBinding.inflate(inflater, parent, false);
Run Code Online (Sandbox Code Playgroud)

有任何性能差异吗?
每个的首选用例是什么?

任何其他信息将不胜感激!

谢谢!

performance android android-databinding

6
推荐指数
2
解决办法
1240
查看次数

Android RecyclerView Adapter DataBinding - 找不到符号 {layout}BindingImpl

我有一个 Fragment 显示包含天气信息的城市列表。我正在使用 RecyclerView 并且我正在尝试在我的 RecyclerView Adapter 中实现数据绑定库,但由于某种原因,我收到此编译错误:

> error: cannot find symbol import 
         com.example.zach.weatherapp.databinding.CityListItemBindingImpl;
>                                               ^   
> symbol:   class CityListItemBindingImpl   
> location: package com.example.zach.weatherapp.databinding
Run Code Online (Sandbox Code Playgroud)

这是一个自动生成的类,所以我真的不知道错误在哪里。当 xml 文件中出现错误时,我以前对其他布局也有同样的错误,但在这里似乎没问题。

预测适配器.kt

package com.example.zach.weatherapp.Adapter

import ...

class ForecastAdapter(var myDataset: List<City>) :
    RecyclerView.Adapter<ForecastAdapter.ForecastViewHolder>() {

    var context:Context?=null
    // Provide a reference to the views for each data item
    // Complex data items may need more than one view per item, and
    // you provide access to all the views for a data item in a …
Run Code Online (Sandbox Code Playgroud)

android android-fragments kotlin android-recyclerview android-databinding

5
推荐指数
1
解决办法
2180
查看次数

无法解析 androidx.databinding

我正在尝试按照官方文档将我的应用程序迁移到 AndroidX 。我运行重构选项:迁移到 AndroidX

起初,我遇到了一些错误,但已通过重新启动和清理我的项目来解决。然后我遇到了一个问题STRING_TOO_LARGE(参见Stack Overflow 问题),我通过将 gradle 构建工具降级到 3.1.3 来解决。

但现在我在数据绑定方面遇到了困难。迁移工具取代了我所有的

import android.databinding.**
Run Code Online (Sandbox Code Playgroud)

经过

import androidx.databinding.**
Run Code Online (Sandbox Code Playgroud)

但我有错误消息

无法解析 androidx.databinding。

他们有什么我应该做的事情才能让它发挥作用吗?


databinding我试图通过退缩来回到过去

import android.databinding.**
Run Code Online (Sandbox Code Playgroud)

而不是那个,但我随后在使用内部 xml 布局androidx时出现错误,说LiveData

找不到参数类型为 androidx.lifecycle.MutableLiveData 的属性的设置器。

android android-databinding android-livedata androidx

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