gpt4 book ai didi

java - 如何从匿名类更新java中的全局变量

转载 作者:行者123 更新时间:2023-12-01 18:04:26 25 4
gpt4 key购买 nike

我正在尝试获取用户位置的 latlng 并将它们作为 double 值传递给另一个方法。但是,我不知道如何做到这一点或者是否可能。

一旦我退出内部类,变量就会再次变为空。

public class MainActivity extends AppCompatActivity {

Double lat;
Double lng;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

public void onSearch(View v){
String[] requiredPermissions = {
Manifest.permission.INTERNET,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
};

boolean ok = true;

for (int i = 0; i < requiredPermissions.length; i++) {
int result = ActivityCompat.checkSelfPermission(this, requiredPermissions[i]);
if (result != PackageManager.PERMISSION_GRANTED) {
ok = false;
}
}

if (!ok) {
ActivityCompat.requestPermissions(this, requiredPermissions, 1);
// that last parameter MUST be >0, or it fails silently
System.exit(0);
} else {
// doStuffThatNeedsPermissions();
LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
lat = location.getLatitude();
lng = location.getLongitude();

System.out.println("location is : " + lat + lng);
}

@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}

@Override
public void onProviderEnabled(String s) {
}

@Override
public void onProviderDisabled(String s) {
}
});

//System.out.println("location is here is : " + lat + lng);
}

//System.out.println("location is dow here is : " + lat + lng);
}

}

最佳答案

我没有发表评论的权限,所以才回答这个问题。

据我了解。虽然有很多方法。这里有一种方法,您可以在整个类(class)中使用它。

private Double lat,lng;
...
@Override
public void onLocationChanged(Location location) {
YourClass.this.lat = location.getLatitude();
YourClass.this.lng = location.getLongitude();

System.out.println("location is : " + this.lat + this.lng);
}
...


System.out.println("location is here is : " + this.lat + this.lng);

我编辑了我的答案。我犯了一个愚蠢的错误。对此深表歉意。

关于java - 如何从匿名类更新java中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60580650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com