我有一个对象“A”
“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
}
});
......其他方法,如show(),hide()等......从别人那里复制
答案 0 :(得分:1)
使用界面执行此操作。
- A类应该实现接口
- 将此传递给PrePopupPanel。
- 通过接口对象调用方法。
接口 包com.demo.interface;
public interface ICallHandler {
public void show(String show);
}
类
class EventsOverlay extends ItemizedOverlay<OverlayItem> implements ICallHandler{
private PrePopupPanel panel=new PrePopupPanel( R.layout.preview1,this);
@Override
protected boolean onTap(int index) {
panel.show(true);
return true;
}
PrePopupPanel
Class PrePopupPanel {
View popup;
boolean isVisible=false;
ICallHandler mHandler;
PrePopupPanel(int layout, ICallHandler callHandler) {
mHandler = callHandler;
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
mHandler.show();
}
});
答案 1 :(得分:1)
你的班级在另一个班级内,你可以访问你父母的所有成员方法。
答案 2 :(得分:0)
在onCreateDialog
中,您可以传递对自定义对象的引用,并在用户单击按钮时触发您想要的任何方法。然后,您的活动代码中的任意位置都会调用showDialog()