gpt4 book ai didi

Android Studio 1.5.1 + 数据绑定(bind) : Error messages in the IDE

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:50 26 4
gpt4 key购买 nike

我正在为 Android Studio 中的 Android 数据绑定(bind)而苦苦挣扎。我在 IDE 中收到两条错误消息,我不知道如何解决这些错误:Cannot resolve symbol 'BR'Cannot resolve symbol @{data.visible ? View.VISIBLE:View.GONE.

这就是我所做的:

  • 安装了 Android 支持存储库(修订版 25)Android SDK 管理器
  • Android Studio 1.5.1 中创建了一个新项目:
    • 应用程序名称​​DataBindingTest(域my.namespace,包namespace.my.databindingtest)
    • 对于手机和平板电脑,最低 SDK 版本 9,目标 SDK 版本 23
    • 添加了一个空 Activity
  • dataBinding { enabled = true } 添加到应用程序模块的 build.gradle 文件(并执行 gradle sync)
  • 添加了一个 Data 类,它扩展了 BaseObservable 并具有属性 text (String) 和 visible (Boolean )
  • 更改了 activity_main.xml:包裹在 layout 标签中,添加了 data 部分并使用了 data.textdata.visible 属性。
  • 将初始化代码添加到 MainActivity

这是更改文件的代码:

build.gradle(模块:应用):

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "namespace.my.databindingtest"
minSdkVersion 9
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'
}

Data.java(包 namespace.my.databindingtest):

package namespace.my.databindingtest;

import android.databinding.BaseObservable;
import android.databinding.Bindable;

public class Data extends BaseObservable {
private String text;
private boolean visible;

public Data(String text, boolean visible) {
this.text = text;
this.visible = visible;
}

@Bindable
public String getText() {
return this.text;
}

public void setText(String text) {
this.text = text;
notifyPropertyChanged(BR.text);
}

@Bindable
public boolean getVisible() {
return this.visible;
}

public void setVisible(boolean visible) {
this.visible = visible;
notifyPropertyChanged(BR.visible);
}
}

activity_main.xml(资源/布局):

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="data" type="namespace.my.databindingtest.Data"/>
<import type="android.view.View"/>
</data>
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="namespace.my.databindingtest.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{data.text}"
android:visibility="@{data.visible ? View.VISIBLE : View.GONE}"/>
</RelativeLayout>
</layout>

MainActivity.java(包 namespace.my.databindingtest):

package namespace.my.databindingtest;

import android.databinding.DataBindingUtil;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import namespace.my.databindingtest.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
Data data = new Data("Hello world!", true);
binding.setData(data);
}
}

这些是 IDE 中的错误:

Data.java 文件中,BR 以红色突出显示并提示 Cannot resolve symbol 'BR':

Screenshot Data.java

activity_main.xml 文件中,@{data.visible ? View.VISIBLE:View.GONE} 以红色突出显示,提示 Cannot resolve symbol @{data.visible ? View.VISIBLE:View.GONE:

enter image description here

到目前为止我尝试了什么:

  • 文件> 使缓存无效/重新启动...
  • 构建> 清理项目
  • 用 Google 搜索,研究代码...

那么我该如何解决这些错误呢?

最佳答案

我对 BR 符号有同样的问题。我通过重新启动 Android Studio 来“解决”了它:/(我对 Android 和 IntelliJ 有点陌生)似乎在处理应该创建 BR 符号的 @Bindable 时失败了......

关于Android Studio 1.5.1 + 数据绑定(bind) : Error messages in the IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35397265/

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