問題タブ [android-databinding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-databinding - Android データ バインディング: 変数を渡してレイアウトを含める方法
Google のドキュメントによると、含まれているレイアウトから含まれているレイアウトのバインディングに変数が渡される可能性がありますが、それを機能させることはできませんが、データ バインディング エラーが発生します ****msg:Identifiers must have user defined types from the XML file. ハンドラーにはそれがありません。インクルード XML は次のようになります。
含まれている XML は次のようになります。
含まれているレイアウトから生成されたバインディング クラスを介してビューを参照できますが、変数を渡すだけでは機能しません。
android - メモリ内ビットマップを ImageView にデータバインドする
ImageView にバインドしたいメモリ内のビットマップ (独自の TCP/IP プロトコル スタックを介してサーバー アプリケーションからダウンロード) があります。ただし、setImageBitmap を使用して手動で画像をバインドすることはできます。データバインディング ライブラリを使用して他のコントロールをバインドすると、画像が表示されません。データバインディング ライブラリを使用して、Bitmap オブジェクトを含むプロパティにバインドするにはどうすればよいですか?
android - Android setVariable(BR.xyz, model) と databinding.setXYZ(model) の違いは何ですか
私はAndroidのデータバインディングに取り組んでおり、次の2つの方法を使用してモデルを設定できるというシナリオに出くわしました:
次のように設定することもできます。
この2つの違いを説明できる人はいますか?
ユーザー モデル:
android - Android Studio 1.5.1 + データ バインディング: IDE のエラー メッセージ
Android Studio での Android のデータ バインディングに苦労しています。IDE で 2 つのエラー メッセージが表示されますが、これらのエラーの解決方法がわかりません:Cannot resolve symbol 'BR'
とCannot resolve symbol @{data.visible ? View.VISIBLE : View.GONE}
.
これは私がしたことです:
- Android SDK ManagerでAndroid Support Repository (Rev. 25)をインストール
- Android Studio 1.5.1で新しいプロジェクトを作成しました:
- アプリケーション名DataBindingTest (ドメイン
my.namespace
、パッケージnamespace.my.databindingtest
) - スマートフォンとタブレットの場合、最小 SDK バージョン 9、ターゲット SDK バージョン 23
- 空のアクティビティを追加しました
- アプリケーション名DataBindingTest (ドメイン
dataBinding { enabled = true }
app モジュールのbuild.gradleファイルに追加(および gradle 同期を実行)- プロパティ(String) および(Boolean)
Data
を拡張して持つクラスを追加しました。BaseObservable
text
visible
- 変更
activity_main.xml
:layout
タグで囲み、data
セクションを追加し、data.text
anddata.visible
プロパティを使用しました。 MainActivity
クラスに初期化コードを追加
これは、変更されたファイルのコードです。
build.gradle (モジュール: アプリ):
Data.java (パッケージnamespace.my.databindingtest
):
activity_main.xml (解像度/レイアウト):
MainActivity.java (パッケージnamespace.my.databindingtest
):
IDE のエラーは次のとおりです。
Data.java
ファイル内で、BR
ヒントとともに赤で強調表示されCannot resolve symbol 'BR'
ます。
activity_main.xml
ファイル内で、@{data.visible ? View.VISIBLE : View.GONE}
ヒントとともに赤で強調表示されCannot resolve symbol @{data.visible ? View.VISIBLE : View.GONE}
ます。
私がこれまでに試したこと:
- ファイル>キャッシュの無効化 / 再起動...
- ビルド>プロジェクトの消去
- グーグルでコードをいじって...
では、どうすればこれらのエラーを解決できますか?
android - Android インストルメンテーション テストの dexing エラー
Espresso でインストルメンテーション テストを実行しようとしていますが、テストをコンパイルすると、gradle make がエラーを返します。
エラー: Gradle: バイトコードを dex に変換中にエラーが発生しました: 原因: com.android.dex.DexException: 複数の dex ファイルが Landroid/databinding/DataBindingComponent を定義しています。
いくつかの依存関係エラーがあると想定し、次のような依存関係をリストしました。
.\gradlew app:dependencies
そして奇妙なことがありました:私はデータバインディングバージョン1.0-rc4を使用していますが、リストされた依存関係には1.0-rc3がありました:
この 1.0-rc3 はどこから来たのですか? プロジェクト全体にそのような文字列「rc3」はありません(生成されたdex-cacheファイルを除く)。
UPD:
これは android gradle-plugin の問題だと思います。同じコードが gradle 1.5 で動作しますが、gradle 2.0.0-beta2 と 2.0.0-beta4 では失敗するためです。
UPD2:
問題を解決しました。
プロジェクトは比較的古く、android-databinding
プラグインはベータ版から成長しましたgradle 1.5.0-beta1
。データバインディングを有効にするには、追加するだけです
あなたのandroid{}
セクションで。
したがって、このような問題に直面した場合は、ファイルからこれらの文字列を削除したことを確認してくださいbuild.gradle
:
1) apply plugin: 'com.android.databinding'
2) classpath 'com.android.databinding:dataBinder:1.0-rc4'
3)apt 'com.android.databinding:compiler:1.0-rc4'
android - DataBinding ライブラリ インクルードは、変数なしでは機能しません
George Mountが 1.0-rc4 から始めて言っ たように、データ バインディングを使用する場合、インクルードに変数は必要なくなりました。
ボタン.xml:
main.xml:
しかし、私はそれを試してみましたが、エラーが発生しました:
エラー:(10, 31) 識別子には、XML ファイルからのユーザー定義型が必要です。toolbarViewModel にそれがありません
ツールバーが含まれています:
ツールバーのレイアウトは次のとおりです。
なにが問題ですか?
注: 渡された変数を使用すると、すべて正常に動作することがわかっています。ジョージが言った使い方を理解しようとしています。