YXTS122
2018-02-21 13:50
采纳率: 100%
浏览 1.1k

界面一片空白,连toast都不显示

界面一片空白,显示不出自己所在的经纬度,连toast都不显示

 public class MainActivity extends Activity {

    public static final int SHOW_LOCATION = 0;

    private TextView positionTextView;

    private LocationManager locationManager;

    private String provider;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        positionTextView = (TextView) findViewById(R.id.position_text_view);

        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        // 获取所有可用的位置提供器
        List<String> providerList = locationManager.getProviders(true);
        if (providerList.contains(LocationManager.GPS_PROVIDER)) {
            provider = LocationManager.GPS_PROVIDER;
        } else if (providerList.contains(LocationManager.NETWORK_PROVIDER)) {
            provider = LocationManager.NETWORK_PROVIDER;
        } else {
            // 当没有可用的位置提供器时,弹出Toast提示用户
            Toast.makeText(this, "没有可用的位置提供器",
                    Toast.LENGTH_SHORT).show();
            return;
        }
        Location location = locationManager.getLastKnownLocation(provider);
        if (location != null) {
            // 显示当前设备的位置信息
            showLocation(location);
        }
        locationManager.requestLocationUpdates(provider, 5000, 1,
                locationListener);

     }

    protected void onDestroy() {
        super.onDestroy();
        if (locationManager != null) {
            // 关闭程序时将监听器移除
            locationManager.removeUpdates(locationListener);
        }
    }

    LocationListener locationListener = 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) {
            // 更新当前设备的位置信息
            showLocation(location);
        }
    };

    private void showLocation(Location location) {
        String currentPosition="纬度"+location.getLatitude()+"\n"+"经度"+location.getLongitude();
        positionTextView.setText(currentPosition);

    }



}  
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • bdmh 2018-02-22 02:02
    已采纳

    没有toast,说明没有执行到那个if中,你调试一下,就知道代码是怎么执行的啦,页很容易找到问题

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2018-02-21 15:42
    评论
    解决 无用
    打赏 举报
  • stone_you 2018-02-22 03:17

    先打断点调试一下看看

    评论
    解决 无用
    打赏 举报
  • 紫风幻雪 2018-02-22 06:20

    你用工具打一下断点试试,看看到底是什么原因?哪一步出错了?

    评论
    解决 无用
    打赏 举报
  • qt228186471 2018-02-22 06:53

    明显没有走到最后一个else

    评论
    解决 无用
    打赏 举报
  • Jerry0521 2018-02-22 07:12

    没有执行到Toast语句吧

    评论
    解决 无用
    打赏 举报
  • bigicy 2018-02-22 07:19

    检查toast语句是否执行,断点调试一下就知道了

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题