我有一個對象「A」Android:從彈出窗口中,如何在啓動彈出窗口的對象中調用方法?
「A」發起彈出窗口
即彈出窗口在其內具有一個按鈕的顯示。
我希望在彈出窗口中的按鈕啓動對「A」中方法的調用。
我想發起從低於代碼的線路的呼叫說:
「//這裏我要調用的方法,‘A’,從這個彈出被宣佈」
一般說怎麼才能從彈出窗口中調用聲明彈出窗口的對象中的方法?這似乎是太容易了,但我很喜歡這個OO東西的新手。
如果這個解釋令人困惑,我會很樂意修飾。
public EventsOverlay A = new EventsOverlay(a, b))
class EventsOverlay extends ItemizedOverlay<OverlayItem> {
private PrePopupPanel panel=new PrePopupPanel(R.layout.preview1);
@Override
protected boolean onTap(int index) {
panel.show(true);
return true;
}
...
}結束EventsOverly類
class PrePopupPanel {
View popup;
boolean isVisible=false;
PrePopupPanel(int layout) {
ViewGroup parent=(ViewGroup)mapView.getParent();
popup=getLayoutInflater().inflate(layout, parent, false);
popup.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
hide();
}
});
ImageButton infobtn = (ImageButton)popup.findViewById(R.id.button1);
infobtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
hide();
// RIGHT HERE I WANT TO CALL A METHOD IN "A" from which this popup was declared
}
});
...其他的方法,如顯示(),隱藏()等等......從別人
謝謝你。我確信這是我正在尋找的答案,但我仍然試圖繞過它(這是新的)。我正在閱讀公共界面。在此期間,我想知道從「mCallHandler mHandler」行開始的PrePopupPanel中的mCallHandler的位置被定義爲什麼? Eclipse爲我提供了一個將其定義爲公共接口的機會,但我很困惑。無論如何,感謝您關於對象間通信的關鍵洞察。 – Ray 2012-03-07 05:07:09
好的。按照您的指示,將ICallHandler更改爲mCallHandler,並將其中的所有工作都插入其中!我看到這個問題問幾個地方沒有答案,所以這裏是人。現在我只需要研究這個,直到我完全理解它! – Ray 2012-03-07 05:39:56
對不起。這是ICallHandler mHandler;現在改變:)謝謝:) – user936414 2012-03-09 04:11:09