2011-05-12 81 views
1

我正在編寫一個Android應用程序,其中我有一個Map活動,其中有幾個按鈕,哪些不是。我有一個map.xml用於這個佈局。在這張地圖上,我通過使用我在網上找到的這個庫設置了註釋和「註釋氣球」(我忘了名字,但如果你們想知道的話,我會找到它的)。這部分工作正常。當我在另一個xml中放置一個按鈕時(將一個按鈕放在用於註釋氣球的「註釋氣球」overlay xml中)會出現問題。我想檢測我的地圖活動中的點擊,但似乎永遠不會使用onClick方法。這是我在我的活動正在做的設置監聽器:無法在Android中的活動中設置按鈕監聽器

LinearLayout layout = new LinearLayout(getApplicationContext()); 
    LayoutInflater inflater = (LayoutInflater) getApplicationContext() 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflater.inflate(R.layout.balloon_overlay, layout); 

    Button quickPathfindButton = (Button) v.findViewById(R.id.map_quickpathfind_button); 
    quickPathfindButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      quickPathfind(); 
     } 
    }); 

它似乎永遠不會在onclick方法。你們知道爲什麼會出現這種情況嗎?如果你不明白我的問題,請告訴我。這很難說出來。

謝謝!

回答

1

您將偵聽器附加到不屬於該活動一部分的視圖層次結構中的按鈕。嘗試在xml中設置按鈕的onClick屬性並在您的活動中編寫該方法。它應該在點擊時自動調用方法。

+0

我考慮過這個問題,但是我堅持的部分是如何告訴xml中執行點擊活動的按鈕?在此Map活動中,我將setContentView(...)設置爲我的地圖xml,而不是氣球疊加層xml。它會自動找到它嗎? – Sahir 2011-05-12 19:13:44

+0

我認爲,一旦氣球重疊被添加到視圖層次結構中。試試看看。 – 2011-05-12 19:24:00

+0

好吧,我給了它一個鏡頭。它沒有工作。它給我的錯誤是該方法在活動中找不到。是的,我公開了這個方法。我認爲問題在於我沒有告訴我的地圖活動,這個氣球覆蓋層是我的一部分。從地圖活動調用的其他重疊類中調用氣球覆蓋圖。 – Sahir 2011-05-12 19:39:47