rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

android開発 TextView Do not concatenate text displayed with setText. Use resource string with placeholders.

2021 Sep. 11.

事象

TextViewへのsetText()の引数に、変数・式といったリテラル以外を含む式を入れると"Do not concatenate text displayed with setText. Use resource string with placeholders."と警告される。

対応

コードではなく、Stringリソース(R.stringのstring.xml)に文字列フォーマットを利用して記述する。

参考ページ
【5分で理解】JavaのString.formatの使い方まとめ | 侍エンジニアブログ

コードでファイルサイズを取得し、KB単位でTextViewに表示する例

string.xml
 <string name="kb">%sKB</string>
  %sがコードのgetString()の第2引数に置き換わる。


MainActivity.ktでのコード
val myfileSizeInByte: Long = myFile.length()
textViewFileSize.setText(getString( R.string.kb, (myfileSizeInByte / 1000L).toString()))