我对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);
ETC ....
基本上,我希望能够将经度设置为某个变量(字符串)并在我的onClick按钮中使用该字符串。
我该怎么做?任何链接都会很棒。谢谢!
答案 0 :(得分:1)
不要使用全局变量(静态)变量!非常非常糟糕!你应该只在一些非常精选的编程问题中使用它们。
对这样的问题使用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.
}
答案 1 :(得分:0)
声明要在类之外使用的变量,或者想要通过全局类来访问它,比如
public static String mystring;
如果要在其他类中访问它,请通过classname.mystring访问它。 如果你想在同一个类中访问它,只需通过访问mystring来使用。