在多个"classes"中使用一个字符串



我对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来使用。

相关内容

  • 没有找到相关文章

最新更新