안드로이드 개발 질문/답변
(글 수 45,052)
MapView를 이용하여 마커를 찍고 onTap이라는 함수를 사용하여 그 마커를 누른 후 떼었을 때 이벤트 처리를 해 줄 수 있습니다.
그런데 이 이벤트를 그냥 클릭했을 때로 바꾸고 싶은데요! 어떻게 해야하나요?
그러니까 터치로 하자면 눌렀을 때와 떼었을 때와 누르고 이동 할 때 뭐 이런 이벤트들이 있잖아요~ 그렇게 이벤트를 변경할려면 어떻게
해야하지는 좀 알려주세요!!! 안드로이드 개발자 사이트에는 MapView에 대한 정보가 자세하게 안나와있네요 ㅠㅠ
혹시 MapView 설명이 자세하게 나와있는 사이트도 있으면 좀 알려주세요!!
자세히 설명좀 부탁드릴께요!!
private class HutsItemizedOverlay extends ItemizedOverlay<OverlayItem>{
GeoPoint hutPoints[] = new GeoPoint[List_Size];
OverlayItem[] item = new OverlayItem[List_Size];
public HutsItemizedOverlay(Drawable defaultMarker){
super(defaultMarker);
boundCenterBottom(defaultMarker);
for(int i = 0; i < List_Size; i++){
hutPoints[i] = new GeoPoint(Integer.parseInt(Latitude.get(i).toString()), Integer.parseInt(Longitude.get(i).toString()));
}
for(int i = 0; i < List_Size; i++){
item[i] = new OverlayItem(hutPoints[i], Name.get(i).toString(), Name.get(i).toString());
}
populate();
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow){
super.draw(canvas, mapView, false);
}
protected boolean onTap(final int i) {
Toast.makeText(Act_CCTV_project.this, item[i].getSnippet(), Toast.LENGTH_SHORT).show();
new AlertDialog.Builder(Act_CCTV_project.this)
.setTitle("Select list.")
.setItems(new String[] {"Play", "Edit Info", "Edit GPS", "Delete"},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch(which){
case 0:
uri = "rtsp://"+Camera.get(i)+":"+Port.get(i);
Save_Uri();
Intent act_showvideo = new Intent(Act_CCTV_project.this, Act_ShowVideo.class);
startActivity(act_showvideo);
break;
case 1:
Intent act_edit_info = new Intent(Act_CCTV_project.this, Act_Edit_Info.class);
act_edit_info.putExtra("onTap", i);
startActivity(act_edit_info);
finish();
break;
case 2:
Intent act_edit_gps = new Intent(Act_CCTV_project.this, Act_Edit_GPS.class);
act_edit_gps.putExtra("onTap", i);
startActivity(act_edit_gps);
finish();
break;
case 3:
Name.remove(i); //해당 id의 리스트를 지우고
Camera.remove(i);
Port.remove(i);
Latitude.remove(i);
Longitude.remove(i);
List_Size = List_Size - 1;
Save_List_Size();
Save_List_Data();
Intent restart = new Intent(Act_CCTV_project.this, Act_CCTV_project.class);
startActivity(restart);
finish();
break;
}
}
})
.setNegativeButton("Close", null)
.show();
return(true);
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return item[i];
}
@Override
public int size() {
// TODO Auto-generated method stub
return hutPoints.length;
}
}



itemizedOverlay 클래스에 onTouchEvent 사용하시면될거같아요 ㅎ