我对android不太好,所以我只想问你这个问题:
我想将一些"数据"(GPS坐标)从我的位置侦听器传输到一个字符串,该字符串将用于onClick函数。例如:
case R.id.sendButton:
ParsePush push = new ParsePush();
String message = "Hey, My coordinates are - LONG:" + loc.getLongitude();;
push.setChannel("test1");
push.setMessage(message);
push.sendInBackground();
break;
是的,我DO有一个位置侦听器:
class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
mlocation.setText("");
Toast.makeText(
getBaseContext(),
"Location changed: Lat: " + loc.getLatitude() + " Lng: "
+ loc.getLongitude(), Toast.LENGTH_SHORT).show();
String longitude = "Longitude: " + loc.getLongitude();
Log.v("Long", longitude);
String latitude = "Latitude: " + loc.getLatitude();
Log.v("Lat", latitude);
等等
因此,基本上,我希望能够将经度设置为某个变量(字符串),并在onClick按钮中使用该字符串。
我该怎么做?任何链接都会很棒。谢谢
不要使用全局变量(静态)变量!!!非常非常糟糕!您应该只在一些非常精选的编程问题中使用它们。
对这样的问题使用get模式!下面的示例代码显示了如何使用get(和set)模式。
class MyLocationListener implements LocationListener {
private String longitude;
private String latitude;
public String getLongitude(){
return longitude;
}
public String getLatitude(){
return latitude;
}
@Override
public void onLocationChanged(Location loc) {
longitude = "Longitude: " + loc.getLongitude();
Log.v("Long", longitude);
atitude = "Latitude: " + loc.getLatitude();
Log.v("Lat", latitude);
}
}
在活动中保留听众的实例
//Initialize your listener in the onCreate for example
MyLocationListener listener = ;
要获取经度或纬度,请使用:
//In the onClick
if(listener.getLongitude() != null){
//Do something with the value.
} else {
//No longitude available yet.
}
将要在类外使用或要通过类外访问的变量声明为类似全局的
public static String mystring;
如果您想在其他类中访问它,请通过类名.mystring访问它。若您想在同一个类中访问它,只需通过访问mystring来使用。