Would you like to answer me one more question? It seems the context menu is too broad. Would you like to let me know how to set it wrap_content? Thank you very much.
On 12月27日, 下午4时31分, "honglian...@gmail.com" <honglian...@gmail.com> wrote: > hi Guillaume > I got it. Thanks for your valuable response. I also implemented it > in overlay. > > On 12月27日, 上午12时06分, "Guillaume Perrot" <guillaume.p...@gmail.com> > wrote: > > > > > I realized I was calling myself openContextMenu in my code, for tap events > > on overlays... > > I don't know how to handle long clicks on the map, sorry. > > > 2008/12/26 honglian...@gmail.com <honglian...@gmail.com> > > > > hi Guillaume > > > it seems I can't still work it out. log click got no response as > > > before. below is the code and xml files. > > > package android.demo; > > > import com.google.android.maps.MapActivity; > > > import android.os.Bundle; > > > import com.google.android.maps.MapView; > > > import android.view.ContextMenu; > > > import android.view.KeyEvent; > > > import android.view.View; > > > import android.util.*; > > > public class demo extends MapActivity { > > > /** Called when the activity is first created. */ > > > MapView mapView; > > > @Override > > > public void onCreate(Bundle savedInstanceState) { > > > super.onCreate(savedInstanceState); > > > setContentView(R.layout.main); > > > mapView = (MapView) findViewById(R.id.mapview1); > > > // We also want to show context menu for longpressed items in > > > the gallery > > > //init the map view > > > mapView.setLongClickable(true); > > > registerForContextMenu(mapView); > > > > } > > > > public void onCreateContextMenu(ContextMenu menu, View v, > > > ContextMenu.ContextMenuInfo menuInfo) { > > > menu.setHeaderTitle("Menu"); > > > menu.add(0, 1, 0, "Add"); > > > menu.add(0, 2, 0, "Delete"); > > > menu.add(0, 3, 0, "Edit"); > > > } > > > public boolean onKeyDown(int keyCode, KeyEvent event) { > > > if (keyCode == KeyEvent.KEYCODE_Z) { > > > mapView.getController().zoomIn(); > > > return true; > > > } else if (keyCode == KeyEvent.KEYCODE_X) { > > > mapView.getController().zoomOut(); > > > return true; > > > } > > > > return super.onKeyDown(keyCode, event); > > > } > > > > @Override > > > protected boolean isRouteDisplayed() { > > > // TODO Auto-generated method stub > > > return false; > > > } > > > } > > > > <?xml version="1.0" encoding="utf-8"?> > > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > > > android" > > > android:orientation="vertical" > > > android:layout_width="fill_parent" > > > android:layout_height="fill_parent" > > > > <com.google.android.maps.MapView > > > android:id="@+id/mapview1" > > > android:layout_width="fill_parent" > > > android:layout_height="fill_parent" > > > android:enabled="true" > > > android:longClickable="true" > > > android:clickable="true" > > > android:apiKey="0xliHXBcaVPd0uSCbaQpTRJRFCgsjKu7z0Gsjsw" /> > > > > </LinearLayout> > > > > <?xml version="1.0" encoding="utf-8"?> > > > <manifest xmlns:android="http://schemas.android.com/apk/res/android" > > > package="android.demo" > > > android:versionCode="1" > > > android:versionName="1.0.0"> > > > <uses-permission > > > android:name="android.permission.ACCESS_FINE_LOCATION"></uses- > > > permission> > > > > <uses-permission > > > android:name="android.permission.ACCESS_COARSE_LOCATION"></uses- > > > permission> > > > <uses-permission android:name="android.permission.INTERNET"></ > > > uses-permission> > > > > <application android:icon="@drawable/icon" android:label="@string/ > > > app_name"> > > > <uses-library android:name="com.google.android.maps" /> > > > > <activity android:name=".demo" > > > android:label="@string/app_name"> > > > <intent-filter> > > > <action android:name="android.intent.action.MAIN" /> > > > <category > > > android:name="android.intent.category.LAUNCHER" /> > > > </intent-filter> > > > </activity> > > > </application> > > > </manifest> > > > > On 12月26日, 下午9时56分, "Guillaume Perrot" <guillaume.p...@gmail.com> > > > wrote: > > > > I have the same kind of code, which is working though. > > > > The key difference may be that I call mapView.setLongClickable(true); > > > > you > > > > should try it. > > > > > 2008/12/26 honglian...@gmail.com <honglian...@gmail.com> > > > > > > hi Guillaume > > > > > Thanks for your response. I tried to override the > > > > > onCreateContextMenu directly in MapActivity. The result is the same as > > > > > the above. Below is the source code. > > > > > package android.demo; > > > > > import com.google.android.maps.MapActivity; > > > > > import android.os.Bundle; > > > > > import com.google.android.maps.MapView; > > > > > import android.view.ContextMenu; > > > > > import android.view.KeyEvent; > > > > > import android.view.View; > > > > > import android.util.*; > > > > > public class demo extends MapActivity { > > > > > /** Called when the activity is first created. */ > > > > > MapView mapView; > > > > > @Override > > > > > public void onCreate(Bundle savedInstanceState) { > > > > > super.onCreate(savedInstanceState); > > > > > setContentView(R.layout.main); > > > > > mapView = (MapView) findViewById(R.id.mapview1); > > > > > // We also want to show context menu for longpressed items in > > > > > the gallery > > > > > //init the map view > > > > > registerForContextMenu(mapView); > > > > > > } > > > > > public void onCreateContextMenu(ContextMenu menu, View v, > > > > > ContextMenu.ContextMenuInfo menuInfo) { > > > > > menu.setHeaderTitle("Menu"); > > > > > menu.add(0, 1, 0, "Add"); > > > > > menu.add(0, 2, 0, "Delete"); > > > > > menu.add(0, 3, 0, "Edit"); > > > > > } > > > > > public boolean onKeyDown(int keyCode, KeyEvent event) { > > > > > if (keyCode == KeyEvent.KEYCODE_Z) { > > > > > mapView.getController().zoomIn(); > > > > > return true; > > > > > } else if (keyCode == KeyEvent.KEYCODE_X) { > > > > > mapView.getController().zoomOut(); > > > > > return true; > > > > > } > > > > > > return super.onKeyDown(keyCode, event); > > > > > } > > > > > > @Override > > > > > protected boolean isRouteDisplayed() { > > > > > // TODO Auto-generated method stub > > > > > return false; > > > > > } > > > > > } > > > > > > On 12月26日, 下午8时14分, Guillaume Perrot <guillaume.p...@gmail.com> wrote: > > > > > > Why don't you override the onCreateContextMenu directly in > > > > > > MapActivity ? > > > > > > > On Dec 26, 10:15 am, "honglian...@gmail.com" <honglian...@gmail.com> > > > > > > wrote: > > > > > > > > hi all > > > > > > > I want to create a context menu when LongClick is hitted. As > > > > > > > result mapview is opened successfully; but the LongClick got no > > > > > > > response. Would you like to give me a hand how to solve it? Below > > > is > > > > > > > the complete code. Thank you very much. > > > > > > > > package android.demo; > > > > > > > import com.google.android.maps.MapActivity; > > > > > > > import android.os.Bundle; > > > > > > > import com.google.android.maps.MapView; > > > > > > > import android.view.ContextMenu; > > > > > > > import android.view.View; > > > > > > > import android.util.*; > > > > > > > public class demo extends MapActivity { > > > > > > > /** Called when the activity is first created. */ > > > > > > > MapView mapView; > > > > > > > @Override > > > > > > > public void onCreate(Bundle savedInstanceState) { > > > > > > > super.onCreate(savedInstanceState); > > > > > > > setContentView(R.layout.main); > > > > > > > mapView = (MapView) findViewById(R.id.mapview1); > > > > > > > // We also want to show context menu for longpressed items > > > in > > > > > > > the gallery > > > > > > > //init the map view > > > > > > > > mapView.setOnLongClickListener(new > > > View.OnLongClickListener(){ > > > > > > > > public boolean onLongClick(View v) { > > > > > > > mapView.showContextMenu(); > > > > > > > return true; > > > > > > > } > > > > > > > > }); > > > > > > > > mapView.setOnCreateContextMenuListener(new > > > > > > > View.OnCreateContextMenuListener() { > > > > > > > public void onCreateContextMenu(ContextMenu menu, View v, > > > > > > > ContextMenu.ContextMenuInfo menuInfo) { > > > > > > > menu.setHeaderTitle("Menu"); > > > > > > > menu.add(0, 1, 0, "Add"); > > > > > > > menu.add(0, 2, 0, "Delete"); > > > > > > > menu.add(0, 3, 0, "Edit"); > > > > > > > } > > > > > > > }); > > > > > > > > registerForContextMenu(mapView); > > > > > > > > } > > > > > > > > @Override > > > > > > > protected boolean isRouteDisplayed() { > > > > > > > // TODO Auto-generated method stub > > > > > > > return false; > > > > > > > } > > > > > > > > }- 隐藏被引用文字 - > > > > > > > - 显示引用的文字 - > > > > > -- > > > > Guillaume Perrot > > > > Software Engineer at Ubikod > > > > BuddyMob developer- 隐藏被引用文字 - > > > > > - 显示引用的文字 - > > > -- > > Guillaume Perrot > > Software Engineer at Ubikod > > BuddyMob developer- 隐藏被引用文字 - > > > - 显示引用的文字 -- 隐藏被引用文字 - > > - 显示引用的文字 - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---