2014-07-03 43 views
0

所以我跟着文檔here來連接其他的事情XML字符串值,並因此有下面的代碼:如何在Java中連接後設置XML字符串?

//XML strings.xml 
<string name="start_next_act_string">The next activity has been scheduled to automatically launch in %1$d seconds!</string> 

//layout/activity_home.XML 
    <TextView 
     android:text="@string/start_next_act_string" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

//Home.java inside class, but outside oncreate 
int startNextActivityInSeconds = 10; 

//Home.java inside class and inside oncreate 
     super.onCreate(savedInstanceState); 

     Resources res = getResources(); 
     String text = String.format(res.getString(R.string.start_next_act_string), startNextActivityInSeconds); 

     setContentView(R.layout.activity_home); 

但是Android的屏幕上它打印出

的下一個活動已計劃在%1 $ d秒內自動啓動!

而不是

下一個活動已定於在10秒內自動啓動!

如何更新XML字符串以顯示連字符串結果?

回答

1

恐怕你想做的事情不起作用。當佈局膨脹時,字符串的使用與資源文件中定義的完全相同。

對於這一點,你必須明確地設置文本,即

setContentView(R.layout.activity_home); 
TextView tv = (TextView)findViewById(R.id.theId); 
tv.setText(text); 

其中「theId」是你必須在XML文件中的TextView設定的ID,例如:

<TextView 
    android:id="@+id/theId" 
    android:text="@string/start_next_act_string" 
    ... 
0

您需要將您的TextView的text屬性設置爲您創建的新String,否則格式化的字符串將僅存儲在您的本地String中,並且不會反映在UI中。

首先你需要給它一個ID命名您的TextView:

<TextView 
    android:id="@+id/YourId" 
    ... 

之後,綁定到視圖從Activity並積極修改其文本:

TextView myTextView = (TextView)findViewById(R.id.YourId); 
myTextView.setText(text);