首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有“实现LocationListener”的情况下使用LocationListener?

如何在没有“实现LocationListener”的情况下使用LocationListener?
EN

Stack Overflow用户
提问于 2011-09-26 01:07:53
回答 2查看 6K关注 0票数 2

我终于找到了一个可以获取用户GPS位置的应用程序,但我实现了LocationListener。它工作得很好,但我需要在不实现它的情况下完成它,因为我必须做一个不实现方法的类。

我搜索了很多教程,查看了很多网站,我试图将我的代码转换为不实现LocationListener,但我做不到,我测试的每一件事都会破坏我的应用程序,并停止获取用户的GPS位置。

请,如果有人在这方面的专家可以转换我的代码,而不是使用“实现LocationListener”,我会很高兴他

下面是要转换的代码:

代码语言:javascript
复制
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());
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-26 01:13:55

代码语言:javascript
复制
public class GpsMiniActivity extends Activity {

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, ll);
}
}
private LocationListener ll = new LocationListener(){
public void onLocationChanged(Location location) {
    tv1.setText("Lat " +   location.getLatitude() + " Long " + location.getLongitude());
}
public void onProviderDisabled(String provider) {}
public void onProviderEnabled(String provider) {}
public void onStatusChanged(String provider, int status, Bundle extras) {}
}
}

这就对了。

票数 5
EN

Stack Overflow用户

发布于 2011-09-26 01:19:59

为此,您必须在onCreate()之外创建一个单独的LocationListener,并将其引用给LocationManager的requestLocationUpdates,如下所示

代码语言:javascript
复制
 LocationListener mLocationListener = new LocationListener() {

            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {}
            @Override
            public void onProviderEnabled(String provider) {}
            @Override
            public void onProviderDisabled(String provider) {}
            @Override
            public void onLocationChanged(Location location) {
                tv1.setText("Lat " +   location.getLatitude() + " Long " + location.getLongitude());
            }
        };

在此之后,您必须在onCreate()中像这样引用此LocationListener

代码语言:javascript
复制
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
        mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                500, 0, mLocationListener);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7547094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档