[解決済み] Android XML パーセントシンボル
2022-03-17 14:36:11
質問
文字列の配列があり、その中の
%
シンボルが使用されています。を使用する際の適切な書式
%
は
%
. その配列の中に、複数の
%
というエラーが発生します。
Multiple annotations found at this
line:
- error: Multiple substitutions specified in non-positional format;
did you mean to add the formatted="false" attribute?
- error: Found tag </item> where </string-array> is expected
解決方法は?
Androidアセットパッケージングツール(
aapt
)になりました。
最新のリリースでは、非常に厳しい
に使用され、現在では
すべて
Androidのバージョン。を許可しなくなったため、aapt-errorが発生します。
位置しない書式指定子
.
ここでは、リソース文字列に%-シンボルを含める方法について、いくつかのアイデアを紹介します。
文字列の中に書式指定子や置換子が必要ない場合は、単純に
formatted
属性を設定し、それを
false
:
<string formatted="false">%a + %a == 2%a</string>
この場合、文字列はフォーマット文字列としてではなく
Formatter
ということで、%記号をエスケープする必要はありません。結果として得られる文字列は "%a + %a == 2%a"です。
を省略した場合
formatted="false"
属性を使用すると、その文字列はフォーマット文字列として使用されるため、%-シンボルをエスケープする必要があります。これはダブル-%で正しく行われます。
<string>%%a + %%a == 2%%a</string>
現在
aapt
はエラーになりませんが、使い方によっては、結果の文字列が "%%a + %%a == 2%%a" になる可能性があります。
Formatter
がフォーマットなしで呼び出された場合
引数
:
Resources res = context.getResources();
String s1 = res.getString(R.string.str);
// s1 == "%%a + %%a == 2%%a"
String s2 = res.getString(R.string.str, null);
// s2 == "%a + %a == 2%a"
xmlとコードがなければ、あなたの問題が何であるかを正確に伝えることは困難ですが、これがメカニズムを少し理解する助けになれば幸いです。
関連
-
Androidで発生した問題、解決策とヒント
-
android exception - aapt.exe has stopped working.
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
AndroidStudioのショートカット 検索/置換
-
アンドロイドにおけるトークンの利用
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み】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 実装 サイバーパンク風ボタン
おすすめ
-
Androidのadbデバイスがオフラインであることが判明
-
gitlab 設定エラー。リモートリポジトリから読み込めなかったか、ホストキーの検証に失敗しました。
-
アプリはGoogle検索でインデックスされません Androidmanifestのクソみたいな黄色い警告
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
view.getRootView()の本当の意味とテストについて
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない
-
[解決済み] アンドロイドのstrings.xmlに文字列を書き込む方法