2011-08-19 2 views
1

MapView에 MapActivity가 있습니다. 그것은 잘 작동합니다. 이제 MapView에 SeekBar를 추가하고 싶습니다. 그것은 바닥에 있지만 mapview에 있어야합니다. 사용자가 스크롤하여 거리를 설정합니다. 도대체 무엇이. 내 문제는 findViewById()에 의해 도달 할 때 내가 놓으려고하는 뷰가 null이라는 것입니다. 나는 모든 곳에서 연구를 만든MapView를 사용하여 RelativeLayout의 뷰가 null입니다.

public class MyActivity extends MapActivity implements LocationListener { 
... 
SeekBar DistanceBar; 
... 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mapView = (MapView) findViewById(R.id.mapview); 
    DistanceBar = (SeekBar) findViewById(R.id.DistanceBar); //This is afterwards null. 

와 비슷한 문제를 찾을 수 없습니다 :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <com.google.android.maps.MapView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/mapview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:clickable="true" 
     android:apiKey="mykey"/> 
    <SeekBar 
     android:id="@+id/DistanceBar" 
     android:max="2000" 
     android:progress="2000" 
     android:layout_alignParentBottom="true" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="14dip"></SeekBar> 
</RelativeLayout> 

나는 다음과 같이 그 도달하려합니다. 누군가 비슷한 것을 사용했습니다. 그래서 그것이 null이라는 것을 무시하고 onCreate()에서 SeekBar를 호출하지 않았습니다. 그러나 SeekBar는 전혀 끌지 않았습니다. 지도에 다른보기를 추가 할 수 없습니까?

아무쪼록 감사드립니다.

중요 편집 : 그래픽 레이아웃 뷰어는 SeekBar를 mapview의 맨 아래에 표시합니다.

나는 아직도 얻을 NullPointerException이 : ERROR/AndroidRuntime (12738) : 치명적인 예외 : 주요

ERROR/AndroidRuntime (12738) : java.lang.RuntimeException가 : 활동 ComponentInfo {com.MyApps.MapLocations를 시작할 수 없습니다/com.MyApps.MapLocations.MyActivity} java.lang.NullPointerException이

ERROR/AndroidRuntime (12,738) android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2663)에서

ERROR/AndroidRuntime (12,738) : android.app.ActivityThread.handleLaunchActivity (ActivityThread.jav A : 2679)

ERROR/AndroidRuntime (12,738)에 android.app.ActivityThread.access $ (2300) (ActivityThread.java:125)

ERROR/AndroidRuntime (12,738)에 $ H android.app.ActivityThread .handleMessage (ActivityThread.java:2033)

ERROR/AndroidRuntime (12,738) android.os.Handler.dispatchMessage (Handler.java:99)에서

ERROR/AndroidRuntime (12,738)에 android.os .Looper.loop (Looper.java:123)

ERROR/AndroidRuntime (1273 8) : android.app.ActivityThread.main (ActivityThread.java:4627)에서

ERROR/AndroidRuntime (12738) : java.lang.reflect.Method.invokeNative (기본 방법)

ERROR/AndroidRuntime에서 (12738)에서 java.lang.reflect.Method.invoke (Method.java:521)

ERROR/AndroidRuntime (12738) : com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run에서 (ZygoteInit.java : 871)

ERROR/AndroidRuntime (12,738) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:629)에서

0,123,516

ERROR/AndroidRuntime (12738) : dalvik.system.NativeStart.main (기본 메소드)

ERROR/AndroidRuntime (12738) : 원인 : java.lang.NullPointerException이

ERROR/AndroidRuntime (12738) :에서 com.MyApps.MapLocations.MyActivity.setupSeekbar (MyActivity.java:343)

ERROR/AndroidRuntime (12738) : com.MyApps.MapLocations.MyActivity.onCreate에서 (MyActivity.java:89)

ERROR/AndroidRuntime (12,738)에 android.app.ActivityThread : android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047)

ERROR/AndroidRuntime (12,738)에서 .performLaunchActivity (ActivityThread.java:2627)

,451,515,

ERROR/AndroidRuntime (12738) : ...

여기

이 HierarchyViewer의 결과 더 11 : Here you can seen that there are 2 Views in the layout but only one (MapView) is shown on the tree :S

+0

질문에 표시되는 레이아웃이 main.xml에 포함되어 있습니까? – elevine

+0

예,이 relativelayout, mapview 및 seekbar는 main.xml에 있으며 저장되었습니다. – Genom

+0

널 포인터 예외에서 스택 추적을 질문에 추가하십시오. – elevine

답변

0

main.xml 파일을 map.xml로 복사하고 main.xml을 삭제했습니다. 그리고 효과가있었습니다. 나는 아직도 그것이 일어난 이유를 이해하지 못한다. 어쩌면 "주"가 어떤 문제를 일으킬 수 있습니다. 어쩌면 MapActivities가 "기본"레이아웃을 방해하는 "기본"레이아웃을 스스로 정의했을 수도 있습니다. 그러나 이것이 어떻게 든 해결책이었습니다. 양해 해 주셔서 감사합니다.

중요 편집 : 문제를 발견했습니다. main.xml 파일은 SeekBar가없는 layout-normal 및 layout-normal-long 폴더에 남아있었습니다. 나는 그들을 편집하는 것을 잊었다.

0

가 나는 mapactivity에 다른 뷰를 추가 할 수 있습니까?

예, 가능합니다.

프로젝트를 정리하십시오 (Eclipse 기본 메뉴에서 프로젝트 -> 정리 또는 명령 행에서 ant clean). 그런 다음 Hierarchy View을 사용하여 현재 진행중인 작업을 확인하십시오. 귀하의 신분증 중 하나 (예 : 청소가 도움이됩니다) 또는 아마도 XML 또는 뭔가를 저장하는 데 실패한 것 같습니다.

+0

프로젝트를 정리했습니다. 그러나 문제는 여전히 발생합니다. 그건 그렇고 계층 구조보기는 나를 작동하지 않았다. [2011-08-20 01:47:23 - hierarchyviewer] 장치에서 서버 버전을 볼 수 없습니다. 10009c031579 [2011-08-20 01:47:23 - hierarchyviewer]보기를 가져올 수 없습니다. 장치에서 서버 프로토콜 버전 10009c031579 [2011-08-20 01:47:26 - hierarchyviewer] 장치를 디버깅 할 수 없습니다. 10009c031579 [2011-08-20 01:48:06 - hierarchyviewer] 장치에서 서버 버전을 볼 수 없습니다. 10009c031579 그런데 나는 전에 그것을 사용한 적이 없습니다. – Genom

+1

@Genom : 에뮬레이터와 함께 계층 구조보기 만 사용할 수 있습니다. – CommonsWare

+0

내 질문에 계층 구조 트리를 추가했습니다. – Genom