2011-09-23 1 views
0

저는 사용자의 GPS 위치를 읽고 사용자의 위치가 바뀔 때마다 간단한 텍스트보기를 만드는 간단한 활동을 만들고 있습니다.위치가 바뀔 때마다 사용자의 GPS 위치를 얻고 textview를 얻는 방법은 무엇입니까?

Google의 예가 하나 있지만 사용자의 위치를 ​​파악하기 때문에 좋은 예가 아니며, 위도와 경도가 변경되면 위치가 변경 될 때마다 textview가 실제로 구현되어야합니다. 사용자.

나는 실을하려고했지만 실패하고 나는 실책을 저지르는 것이 아니라고 생각한다.

코드 예제 환영

EDIT 있습니다 : 내가 사용자 NickT에 의해 제안 된 솔루션을 추가 해요. 이 솔루션은 실패합니다. 이유는 모르겠지만 DDMS를 사용하여 에뮬레이터에 전달하는 두 개의 첫 번째 GPS 값과 함께 두 번만 textview를 구현합니다 ....이 후 thextview는 더 많은 시간을 실제화하지 못했습니다 ... 왜? 나는 onLocationChanged에서 중단 점을 만들었고 처음 두 번 호출했을 때 나는 GPS 위치를 보낸다. 그러나 더 절대로. ¿ 무슨 일이 일어나고있는거야?

public class GpsMiniActivity extends Activity implements LocationListener{ 

private LocationManager mLocMgr; 
private TextView tv1; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    FrameLayout rl = new FrameLayout(this.getApplicationContext()); 
    LinearLayout ll= new LinearLayout(this.getApplicationContext()); 
    ll.setOrientation(LinearLayout.VERTICAL); 

    setContentView(rl); 
    rl.addView(ll); 

    tv1=new TextView(getApplicationContext()); 
    ll.addView(tv1); 

    //setContentView(R.layout.main); 
    mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE); 
    mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
      500, 0, this); 
} 
@Override 
public void onLocationChanged(Location location) { 
    tv1.setText("Lat " + location.getLatitude() + " Long " + location.getLongitude()); 
} 

@Override 
public void onProviderDisabled(String provider) {} 

@Override 
public void onProviderEnabled(String provider) {} 

@Override 
public void onStatusChanged(String provider, int status, Bundle extras) {} 

} 

답변

1

절대 최소 예 :

public class GpsMiniActivity extends Activity implements LocationListener{ 

    private LocationManager mLocMgr; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE); 
     mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
       500, 0, this); 
    } 
    @Override 
    public void onLocationChanged(Location location) { 
     TextView tv = (TextView) findViewById(R.id.tv1); 
     tv.setText("Lat " + location.getLatitude() + " Long " + location.getLongitude()); 
    } 

    @Override 
    public void onProviderDisabled(String provider) {} 

    @Override 
    public void onProviderEnabled(String provider) {} 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) {} 

} 

또한 매니페스트와 main.xml에있는 텍스트 뷰 아이디 TV1에 많이, 내가 테스트합니다

+0

감사 권한 ACCESS_FINE_LOCATION이 필요합니다,하지만 난거야 LocationListener를 구현하지 않고도 구현할 수 있습니다. 구현하지 않고 수행하는 방법은 무엇입니까? – NullPointerException

+0

LocationListener는 위치 변경을 감지합니다. 그렇지 않으면 어떻게 작동하는지 나는 볼 수 없다. – NickT

+0

내 클래스는 locationListener를 구현할 필요가 없습니다, 그것을 수행하는 anothr 방법, 그것을 구현하지 않고, 어떻게 그것을 할거라 확신 해요? – NullPointerException

관련 문제