web-dev-qa-db-ja.com

Android setText / R.string / values

フォーマットと複数の値を持つテキストビューでテキストを設定するのに問題があります。

_holder.car.setText(R.string.mycar + lm.getCarName() + R.string.year + lm.getYear());
_

これは私に「2143545カマロ21432131977」を与えています

私はウェブから他のいくつかの「解決策」を試しました

_holder.car.setText(getString(R.string.mycar) + lm.getCarName() + getString(R.string.year) + lm.getYear());  << not work, getString undefine>>
_

String.valueOf(R.string.mycar); getResources().getText(R.String.mycar)を試しましたが、それでも機能しませんでした。

誰かが私を助けてくれるといいですね、ありがとう

8
S Arumik

これを試して

holder.car.setText(getResources().getString(R.string.mycar));

21
user1417127

文字列でパラメータを使用しようとしていると思います。

これを試して:

<string name="mycar">Car: %1$s Year: %2$s</string>

String mycar = getString(R.string.mycar);
mycar = String.format(mycar, lm.getCarName(), lm.getYear());

あなたは得るべきです:

車:カマロ年:1977

11
Benito Bertoli

R.string.mycarとR.string.yearは、リソースのIDのみです。このため、番号を取得します(IDは数値です)。

リソースから文字列を取得するには、次の構造を使用する必要があります。

String myCar = getResources().getString(R.string.mycar);

これで、myCar変数は、strings.xmlファイルにmycar名で入力した文字列を保持します。

getResources()メソッドはContextに属しています。アクティビティの外部でコードを実行する場合は、次のようにコンテキストインスタンスを使用して文字列を取得します。

String myCar = context.getResources().getString(R.string.mycar);
4
Zelter Ady

String.xmlファイルから文字列だけをテキストビューに設定する場合は、

mytextview.setText(R.String.mycar);

いくつかの文字列または整数の組み合わせでテキストビューを設定する場合(最初の方法よりも優れています)

int number=5;

mytextview.setText(getResources().getString(R.String.mycar) + " " +number + " " + getResources().getString(R.String.mysecondcar));
4

これを試して。 Activityを拡張せずにクラスで文字列をフェッチしている場合はContextを使用してください

holder.car.setText(context.getResources().getString(R.string.mycar));

Activityを拡張する場合

holder.car.setText(yourActivity.this.getResources().getString(R.string.mycar));

これがお役に立てば幸いです。

3
Praveenkumar

最初にリソースを取得する必要があり、getTextではなくgetString(int)メソッドを呼び出します。

したがって、次のようになります。

getResources().getString(R.String.mycar);
2
Iñigo

Rクラスには、リソースへの一種のポインターが含まれているため、それらを直接使用することはできません。他の人が言うように、getResources()。getString()を使用してください。

0
Rocel