如何在 Overlay 类的 onTap 方法中使用另一个类?
Posted
技术标签:
【中文标题】如何在 Overlay 类的 onTap 方法中使用另一个类?【英文标题】:How to use another class in onTap method in Overlay class? 【发布时间】:2012-12-11 10:40:36 【问题描述】:我在 1-2 天前问了一个问题,它得到了回答。我的代码在那里。这是text link of my question
我在地图上添加了叠加层,当我单击任何叠加层时,我可以获得它的 ID,但出现了问题。我想获取覆盖的 id,我想将它发送到另一个类,但不是通过 bundle。
我正在使用片段。
这是我的 onTap 函数。
@Override
public boolean onTap(int index)
OverlayItem item = mapOverlays.get(index);
int id = Integer.valueOf(item.getSnippet());
Toast.makeText(context, "Ilan ID : " + id, Toast.LENGTH_LONG).show();
MainActivity ma= new MainActivity();
Param param = null;
param.setAdvertID(String.valueOf(id));
// change page
ma.onTabChanged(TabEnum.ANASAYFA.toString());
//Log.e("Tap", "Tap Performed"+id);
return true;
我想将 id 参数从 ItemizedOverlay 类-onTap 函数-发送到另一个类。 我该怎么做?
编辑:这些不起作用!,我做不到。 :(
MainActivity ma= new MainActivity();
Param param = null;
param.setAdvertID(String.valueOf(id));
ma.onTabChanged(TabEnum.ANASAYFA.toString());
谢谢大家。
【问题讨论】:
【参考方案1】:如果您正在使用片段,您可以在您的活动中提供一个 getter 和 setter,在一个片段中设置数据(到您的活动)并使用活动 getter 获取目标片段中的数据。
您可以提供一个静态方法来从另一个活动中获取数据,即片段中的先前设置。
我认为这就是你想要的。
此外,您可以在带有接口的活动内的片段之间执行此操作,请参阅this。
希望有帮助
【讨论】:
onTabChanged 方法在 MainActivity 我无法使用它。而且,Param 类具有 setter 和 getter 函数,但是当我定义 Param 参数时; Eclipse 说我,它必须具有必须为 null 的初始化值,当我使用 setAdvertID 函数时,它给了我错误。 是的,那个权限,但是你可以在 MainActivity 中调用 onTabChanged 之前设置数据,并在目标片段中从 mainactivity 中获取数据。您正在使用Params,并将其初始化为null,如果您照常使用它,这是一个NullPointerException。当你有fragment和activity时,activity对于所有fragment都是同一个对象,所以你可以使用它在fragment之间传递数据 setAdvertId 函数设置数据,数据为id。但它给出了错误。但如果我只使用这段代码: MainActivity ma= new MainActivity(); // 更改页面 ma.onTabChanged(TabEnum.ANASAYFA.toString());什么都没有发生。 如何使用这个参数对象? 你要初始化它,这个Param类是自定义类吗?做 Param param = new Param();,如果没有,请给你完整的类名? (带包装)以上是关于如何在 Overlay 类的 onTap 方法中使用另一个类?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter GestureDetector,onTap自动触发,如何?