你說你用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");
您使用findViewById(...)來獲取按鈕的權利?你傳遞給這個函數的參數是按鈕ID,不是嗎? – kosa 2012-01-12 22:41:10
是的,我使用findViewById(..)來獲得按鈕,並設置其onClickListener這是我創建意圖 – kmb64 2012-01-12 22:43:41
您是否使用多個按鈕相同的偵聽器?如果沒有,你可以硬編碼嗎? – kosa 2012-01-12 22:50:54