[解決済み] includeタグを用いたAndroidのデータバインディング
2022-04-25 21:33:48
質問
更新情報です。
上記の例 正常に動作する というのは、リリース1.0-rc4 修正済み 不要な変数が必要な問題。
元の質問
に書かれているとおりにしています。 ドキュメント と表示され、動作しません。
main.xml。
<layout xmlns:andr...
<data>
</data>
<include layout="@layout/buttons"></include>
....
buttons.xml。
<layout xmlns:andr...>
<data>
</data>
<Button
android:id="@+id/button"
...." />
MyActivity.java。
... binding = DataBindingUtil.inflate...
binding.button; ->cannot resolve symbol 'button'
ボタンを取得するには?
解決するには?
問題は、インクルードされたレイアウトがデータバインドされたレイアウトとして認識されていないことです。これをデータバインドレイアウトとして動作させるには、変数を渡す必要があります。
buttons.xml。
<layout xmlns:andr...>
<data>
<variable name="foo" type="int"/>
</data>
<Button
android:id="@+id/button"
...." />
main.xml。
<layout xmlns:andr...
...
<include layout="@layout/buttons"
android:id="@+id/buttons"
app:foo="@{1}"/>
....
すると、buttonsフィールドを通じて間接的にボタンにアクセスできるようになります。
MainBinding binding = MainBinding.inflate(getLayoutInflater());
binding.buttons.button
1.0-rc4 (リリースされたばかり) では、この変数は不要になりました。簡略化すると
buttons.xml。
<layout xmlns:andr...>
<Button
android:id="@+id/button"
...." />
main.xml。
<layout xmlns:andr...
...
<include layout="@layout/buttons"
android:id="@+id/buttons"/>
....
関連
-
eclipse の実行時に java 仮想マシンが見つからなかった
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Spring Boot による HTTPS アクセスの設定
-
SpringBootApplication を型解決できない。
-
javaで非静的な解を静的な参照にすることができない
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
自動配線された依存性のインジェクションに失敗しました。
-
スレッド "main" で例外発生 java.net.BindException: アドレスは既に使用中です。NET_Bind
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策