2011-06-24 66 views
0

在我的佈局xml文件中,我有幾個按鈕,這樣它們共享相同的事件處理程序:如何獲取按鈕的原始資源標識符?

<Button android:id="@+id/page1" onClick="OnClick" .... ></Button> 

在我的活動,我想是這樣的代碼:

public void onClick(View v) { 
    String url = String.format("http://example.com/%d", v.getId()); 
} 

動態生成的URL 。但是,getId()返回表示按鈕ID的整數,而不是單詞「page1」。

當然,我可以使用switch語句,但如果我可以引用分配給按鈕的原始ID名稱,它會更方便。

這可能嗎?

回答

2

使用getResources().getResourceName()

+0

不錯!實際上,getResourceName()返回完整的標識符; getResourceEntryName()只提供按鈕名稱。謝謝:) – marlar

0

您可以對生成的R.id類使用反射。 或者,更好的是你可以創建自己的包含你想知道的值的字段。

2

反射,或者設置了android:tag屬性,然後用.getTag(),從代碼更簡單,但在the.xml有點冗餘。

+0

謝謝你提到的思考。我是Java新手,並不知道這個概念。 – marlar