2017-12-11 16 views
0

動的文字列を処理する方法は?

XML文字列私は文字列変数に動的な値を置きたいので、私はこのコードを持っている:

<resources> 
     <string name="Destination">%1$s!</string> 
</resources> 

XML活動:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <EditText 
     android:hint="@string/Destination"/> 
</RelativeLayout> 

は、Java:

Resources res = getResources(); 
String text = String.format(getResources().getString(R.string.Destination), addressComplete); 

しかし、システムには

と表示されています

変数 'text' は

を使用されることはありませんし、活動中のEditTextボックス内の文字列

% 1 $ sがあります!

どこが間違っていますか?

+0

あなたのコードは、あなたが変数 'text'で何かをしていることを示していないので、システムが言っていることは正しいです。また、あなたが求めていることは完全にはっきりしていません。他のテキストを 'Destination' Stringリソースと連結したいのですか? – DigitalNinja

+0

変数 "%1 $ s!"に "addressComplete"という値(javaで構築)を入れたいと思います。 XML文字列リソースに配置されます。%1 $ s!;だから私はそれを置き換えたい –

答えて

0

私はコードを完成させるだけでよいと思います。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"> 
    <EditText 
     android:id="@+id/destinationInput" 
     android:hint="@string/Destination"/> 
</RelativeLayout> 

次に、あなたのJavaで、あなたはEditTextへの参照を取得し、あなたのtext変数にヒントを変更します:

あなたの EditTextはIDを持つようにあなたの XMLレイアウトを変更する必要が

String text = String.format(getResources().getString(R.string.Destination), addressComplete); 
EditText destinationInput = (EditText) findViewById(R.id.destinationInput); 
destinationInput.setHint(text); 
+0

信じられないほど...それは動作します。非常に忍者ありがとうございます。 –

+0

あなたは大歓迎です! – DigitalNinja

関連する問題