我正在使用mapsforge库在我的应用中使用地图。我需要启动一个上下文菜单并返回地图坐标。这是我尝试过的。在我的布局中,我在mapview下方设置了一个隐藏按钮,用于监听longpress。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<org.mapsforge.map.android.view.MapView
android:id="@+id/offlinemapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button
android:id="@+id/mapview_btn_offline"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
然后我正在注册上下文菜单的这个按钮,并为上下文菜单充气。
mapb = (Button) findViewById(R.id.mapview_btn_offline);
registerForContextMenu(mapb);
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.map_menu, menu);
}
但是当我运行应用程序时,即使在长按后,上下文菜单也没有显示出来。关于如何使这个工作的任何想法?
答案 0 :(得分:1)
实际上mapview类是ViewGroup的扩展类。 你应该做以下事情:
1.在mapsforge中更改OnTouchEvent。 MotionEvent会为您提供一些操作。 2.定义一个计时器,以保持touch_down和touch_up之间的时间或取消。 3.由您来决定如何实施备件......