2011-08-18 63 views
0

我在同一個活動上有多個按鈕,每個按鈕在點擊時調用方法「guessMade()」。未能使用R,無法通過java代碼操作UI

每次點擊一個按鈕時,我想將該按鈕的名稱設置爲要顯示在TextView中的消息。不用說,TextView也已經創建。

我的代碼如下:

public void guessMade(View view){ 
    CharSequence s = ((Button)view).getText(); 
    TextView t = (TextView)view.findViewById(R.id.textView1); 
    t.setText(s); 
} 

在哪裏失敗?

+0

什麼問題?編譯錯誤?如果是這樣,什麼?例外?如果是這樣,什麼? – EboMike

+2

R標籤並不真正屬於這裏,它是針對R編程語言的。 Android的R類僅代表我相信的「資源」。 –

+0

另外,什麼是佈局的XML代碼? – EboMike

回答

-1

您的變量「s」可能有問題。

嘗試

t.setText("hello"); 

更換

t.setText(s); 

,看看它是否工作。

+0

它也沒有這樣工作。問題應該在第二行。 – Pumpkin

+0

或setText。嘗試用「t」做除setText以外的其他內容。 –

+0

你說得對,問題在於設置文本,你知道我怎麼能改變textView上的文本嗎? – Pumpkin

1

我覺得你的問題帶有傳遞View

  • 首先,你施放傳遞ViewButton並獲得它的文本。 好吧,直到這裏。
  • 下一步,您使用傳遞的View來獲取TextView,即 要用於顯示文本。

問題是,您傳遞的視圖只能是Button或視圖(佈局)的集合。

你要使用

TextView t = (TextView) this.findViewById(R.id.textView1); 

讓你View,因爲使用findViewById()-method

尋找一個孩子視圖與給定的ID。

使用this將工作,如果此代碼放置在類延伸Activity。如果這個代碼不位於這樣一個類,您可以: