什么东西连toast,textview都不显示

YXTS122 2018-02-21 11:54:51
public class MainActivity extends Activity implements OnClickListener {

public static final int SHOW_LOCATION = 0;

private TextView positionTextView;

private LocationManager locationManager;

private String provider;
Button bt;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
positionTextView = (TextView) findViewById(R.id.position_text_view);
bt=(Button)findViewById(R.id.button);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
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);
break;
default:break;
}
}

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);

}



}



...全文
887 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
左耳边的期盼 2018-02-23
  • 打赏
  • 举报
回复
添加这条试试:bt.setOnClickListener(this);
cattpon 2018-02-23
  • 打赏
  • 举报
回复
编译什么软件用的?
YXTS122 2018-02-22
  • 打赏
  • 举报
回复
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);
Toast.makeText(getApplication(), "测试1",
Toast.LENGTH_LONG).show();

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
// 获取所有可用的位置提供器
List<String> providerList = locationManager.getProviders(true);
if (providerList.contains(LocationManager.GPS_PROVIDER)) {
provider = LocationManager.GPS_PROVIDER;
Toast.makeText(getApplication(), "测试4",
Toast.LENGTH_LONG).show();
} else if (providerList.contains(LocationManager.NETWORK_PROVIDER)) {
provider = LocationManager.NETWORK_PROVIDER;
Toast.makeText(getApplication(), "测试5",
Toast.LENGTH_LONG).show();
} else {
// 当没有可用的位置提供器时,弹出Toast提示用户
Toast.makeText(getApplication(), "没有可用的位置提供器",
Toast.LENGTH_LONG).show();
return;
}
Toast.makeText(getApplication(), "测试2",
Toast.LENGTH_LONG).show();
Location location = locationManager.getLastKnownLocation(provider);
if (location != null) {
// 显示当前设备的位置信息
showLocation(location);
}
else
{
Toast.makeText(getApplication(), "测试3",
Toast.LENGTH_LONG).show();
}
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);
}
};

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

}



}



为什么location为null
  • 打赏
  • 举报
回复
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        positionTextView = (TextView) findViewById(R.id.position_text_view);
        bt=(Button)findViewById(R.id.button);
        bt.setOnClickListener(this);
    }
YXTS122 2018-02-22
  • 打赏
  • 举报
回复
按照1楼和2楼的方法改后还是不显示自己所在的经纬度呀!
程序员一鸣 2018-02-22
  • 打赏
  • 举报
回复
少了一个注册监听:bt.setOnClickListener(this);

80,358

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧