2012-01-12 26 views
2

我的主要活動佈局包含10個不同的按鈕,都調用相同的活動(MapsActivity)。找到調用intent/activity的按鈕的ID? Android

如何查找從MapsActivity中按下的按鈕的ID?我試圖通過使用

intent.putExtra(「id」,id);

但是,當按下任何按鈕時,這個id就出現了。

我是否需要爲所有調用相同活動的每個按鈕創建單獨的意圖?或者我可以使用1個意圖,只需更改傳遞給MapsActivity的值?

我希望我已經足夠清楚地解釋了這個問題!謝謝!

+0

您使用findViewById(...)來獲取按鈕的權利?你傳遞給這個函數的參數是按鈕ID,不是嗎? – kosa 2012-01-12 22:41:10

+0

是的,我使用findViewById(..)來獲得按鈕,並設置其onClickListener這是我創建意圖 – kmb64 2012-01-12 22:43:41

+0

您是否使用多個按鈕相同的偵聽器?如果沒有,你可以硬編碼嗎? – kosa 2012-01-12 22:50:54

回答

2

你說你用findViewById將偵聽器添加到代碼中的按鈕,所以我假設你有要求,這意味着你不能用xml設計你的佈局。所以,當你設置你的第一個活動,一個持有所有這些按鈕,確保他們都得到相同的點擊監聽。我們可以調用這個監聽器方法mapsButtonListener。應該聲明如下:

public void mapsButtonListener(View sender) { 
    int id = sender.getId(); 
    Intent mapsActivity = new Intent(getApplicationContext(), MapsActivity.class); 
    mapsActivity.putExtra("button_id", id); 
    startActivity(mapsActivity); 
} 

我們按鈕的編號:s

,如果你把你的按鈕使用XML設計,則只需確保他們有編號:s在XML聲明。然而,如果你是而不是這些使用xml,而是在代碼中實例化它們,那麼你將不得不使用方法setId(4)來給你的按鈕id:s(不要全部明確地給它們4個,呵呵)。這應該在添加點擊偵聽器的同時完成。另外,確保你知道什麼按鈕得到什麼號碼,以便以後可以檢查。

獲取ID在MapsActivity

一次mapsActiviy開始,我們會想該ID。我們使用以下行(在MapsActivity類中)執行此操作:

int id = getIntent().getIntExtra("button_id"); 
+0

這就是它那裏 – kmb64 2012-01-14 19:53:04

+0

@karl很高興聽到:) – davogotland 2012-01-14 22:13:35