我只是想让一个mapview识别点击,以便调用另一个活动。android:MapView无法识别点击
到现在为止,我尝试了常规的“onClick”,它总是在常规视图中为我工作,然后覆盖“onTouchEvent”,最后但并非最不重要的使用onClickListener。
我把所有三种方式放到下面的代码中。任何帮助,高度赞赏。
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
public class HelloMapView extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
final MapView map;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
map = (MapView) findViewById(R.id.mapview);
map.setOnClickListener(new MapView.OnClickListener() {
public void onClick(View v){
System.out.println("I listened!");
}
});
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
System.out.println("onTouchEvent happened!");
super.onTouchEvent(arg0);
return super.onTouchEvent(arg0);
}
public void onClick(){
System.out.println("onClick entered!");
}
}
覆盖问题是,我不能称它为“StartActivityForResult”,据我所知。因此,即使我在叠加层中执行了整个“用户点击事件”,我也需要以某种方式触发我的Map活动,以便使用从叠加层接收的数据调用“StartActivityForResult”。 – Ben 2010-12-22 21:43:08
叠加层通常被实现为内部类。因此可以从它们调用Activity方法。看到我编辑的答案。 – kgiannakakis 2010-12-23 08:46:07