2012-10-15 2 views
0

내 응용 프로그램이 필요하면 Mapview가 ImageView처럼 작동해야합니다.클릭 할 수없는 MapView 사용

기본 동작 (사용자가 이동할 수 없음)이 없으며 클릭하면 Google지도를 실행해야하는 작은지도입니다.

나는 다음과 같은 코드를 사용하는 것을 시도했다 :

mapView.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(Intent.ACTION_VIEW, 
      Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)")); 
     startActivity(intent); 
    } 
}); 

하지만 OnClickListener를 호출되지 않습니다 있다는 것, 그리고 나는지도보기 스크롤을 사용하지 않도록 설정하는 방법을 발견하지 않았습니다.

도움 주셔서 감사합니다.

편집 : 는 이미지도 지금 "비활성화"이기 때문에 taht를이, 좋은 일하고 사용자가 이동할 수는 없지만, = 클릭 잘못된 사용하려고 내가 클릭하면 ... GMaps을 시작하기 수 없습니다

당신이 clickable(true) 다음 onTouch 초점을 것입니다 설정할 때
+0

보기 : http://stackoverflow.com/a/5716704/1321873 – Rajesh

+0

지도보기 스크롤을 중지 할 수 있습니까? – sarabhai05

답변

1

을 도울 수있는 XML 파일에 android:clickable="false"을합니다. 따라서 onTouch을 덮어 쓰고지도보기를 클릭 할 수 없는지 내부를 확인하고 클릭 할 수없는 경우 => 활동을 시작하십시오.

+0

깨끗하지는 않지만 적어도 작동합니다! –

+0

그래, 글쎄, 너의 질문을보고 내 머리 꼭대기에서 이것에 대해 생각해 봤어. 아마 이것에 대한 더 나은 대안이있을 것입니다. – Carnal

-1

, 당신은 clickable(false)을 설정할 때 onClick을 사용할 수 없습니다 당신에게

+0

작동하지만, 사용자가지도를 클릭하면 Google지도를 시작할 수 없습니다. –

+0

클릭 수신기에서지도에서 클릭 가능으로 설정할 수 있습니다. –

+0

질문에 설명 된대로 OnClickListener가 호출되지 않고 클릭 가능으로 설정 됨 true 또는 false, 두 경우 모두 –

2

Google지도를 실행하려면 onTouchListener를 사용하십시오. onClickListenere는 mapview를 클릭 할 때 호출되지 않기 때문입니다. 나는 다음과 같이 시도했다.

mapView.setOnTouchListener(new OnTouchListener() { 

     public boolean onTouch(View v, MotionEvent event) { 
      Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show(); 
      Intent intent = new Intent(CurrentActivity.this, NextActivity.class); 
      startActivity(intent); 
      return false; 
     } 
    }); 

여기서 NextActivity는 MapActivity를 확장하는 또 다른 활동이다.

+0

고맙습니다. 그러나 Carnal은 같은 대답으로 너무 빠릅니다. –

+0

:-) 예, 저는 배우기 전에 배우기 단계에 조금 주저하고 있습니다. – sarabhai05

+0

귀하의 게시물에 +1을 남겼습니다 ;-) –

관련 문제