2012-01-02 53 views
6

在我的android項目的/ res/values文件夾中,我有一個字符串,並在我的xml文件的文本視圖中引用,我想更改我的java文件中的字符串。android(在java代碼中更改字符串)

正如你可以在代碼中看到的,我已經做了一個字符串變量,然後在下面,我已經設置了字符串變量設置爲什麼,這是字符串所在的位置。我在代碼中提出「在這裏」,這是我想要更改爲值文件夾中的字符串。但我不知道用什麼代碼來設置它。

我可以只改變文本視圖中的文本從我的java文件,我知道該怎麼做,但這是一種古老的方式,它設置了一個警告,所以我寧願使用一個字符串,這是最好的方法這樣做。

隨着我在文本視圖中更改文本的知識,我基本上已經猜到了我到這個階段的方式,但是我不知道如何繼續下去,任何人都可以給我一些關於該怎麼做的建議,謝謝。

String string; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    counter = 0; 
    add = (Button) findViewById(R.id.badd); 
    sub = (Button) findViewById(R.id.bsub); 
    reset = (Button) findViewById(R.id.breset); 
    display = (TextView) findViewById(R.id.tvdisplay); 
    string = (String) getString(R.string.counter); 

    add.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
       ((///////////////here////////////////)) 
      counter++; 

     } 
    }); 
+0

我已經刪除了對這個問題的eclipse和eclipse標籤的引用,因爲它沒有關係。 – Squonk 2012-01-02 01:33:19

+1

從我的理解來看,這些字符串意味着是常量,所以我不認爲你可以通過編程來改變它們。儘管如此,我仍然對android開發不熟悉,所以不要抱着我。 – Marcin 2012-01-02 01:33:29

+0

@Marcin:你明白了 - 看到我的答案。 – Squonk 2012-01-02 01:42:03

回答

2

你告訴我們很多改變文字,但是你沒有說文字應該是什麼。我也需要猜測:

strings.xml文件應該用於可能針對不同語言更改的文本。

display.setText(String.valueOf(counter)); 
+0

謝謝你,是啊我寫了我快,所以沒有達到最好的標準一個快速的問題,如果你不介意,這工作得很好display.setText(String.valueOf(counter));但是你會只使用它作爲一個值或一個數字,你會使用display.setText(「」)的字母或字符串? – 2012-01-02 01:39:59

+0

不知何故,我不明白你有什麼問題。 strings.xml包含常量,所以您不能更改存儲在那裏的文本。如果要將文本更改爲用戶可能提供的特定字符串,則應將其設置爲鍵盤併爲每個字母設置一個按鈕。將該字母追加到顯示的字符串中...存儲的字符串應該只是您的默認啓動值,並且不能在運行時更改。我有點失落,因爲我沒有得到你真正需要和想要的東西... – WarrenFaith 2012-01-02 01:55:04

+0

對不起,我明白你的意思了,對不起。 – 2012-01-02 02:39:39

0

您將要使用的方法setText()

display.setText("text"); 
+0

你是否嘗試過「display.setText(」text「);」它可以工作,但只適用於想要更改字符串變量的顯示變量。和「string.setText(」text「);」不工作:/ – 2012-01-02 01:22:11

+1

改變字符串你剛纔試過'string =「hello world」;'然後'display.setText(string);' – 2012-01-02 01:24:37

+0

是啊你的權利我必須使用setText方法很高興我有你們這裏幫忙:) – 2012-01-02 03:04:55

3

您不能修改:如果你只是想改變計數器的文字,你不應該通過strings.xml中的數字是通用:)

嘗試去與做文本在運行時分配給<string> /res/values/strings.xml文件的元素。他們常常如此有效final

您也無法在運行時更改佈局xml文件。如果您創建的TextView版式的android:text屬性設置爲某個初始資源字符串,則該版式基本上是「初始」值,不能在運行時更改爲其他值。

+0

但我正在改變我的android:文本從我的java文件.. – 2012-01-02 01:45:35

+0

你確定這是真的嗎?您可以在運行時更改xml佈局:/ – 2012-01-02 01:51:22

+0

「但我正在更改我的java文件中的android:文本。」 - 不,你不是。您正在使用'setText(...)'這是一種Java方法,並且與XML佈局文件無關。當您調用'setContentView(R.layout.main)'時,layout屬性使用屬性'android:text'。佈局inflater處理XML UI元素,如「TextView」。當它遇到一個'android:text'元素時,它會調用'setText(...)'傳入來自該屬性的文本。 – Squonk 2012-01-02 01:55:10