2014-11-03 50 views
0

我与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

我想我已经找到了我自己的答案。全局变量。 [全球的Java变量] [1] [1]:http://stackoverflow.com/questions/4646577/global-variables-in-java – Paramone 2014-11-03 12:16:55

+1

请非常小心这个!如果您的应用程序暂时处于非活动状态,则Android可能会删除静态内容以释放RAM。如果您的活动再次激活,那些字段为空! (在访问它们之前,检查它们是否无效并相应地处理) – Michael 2014-11-03 12:29:21

回答

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. 
} 
+0

谢谢,我正在使用它,它的工作! – Paramone 2014-11-03 12:47:15

0

声明你要在课堂外使用或要访问它througthout班级为全球像变量,

public static String mystring; 

如果要访问它在其它的类,通过类名访问它.mystring。 如果你想在同一个类中访问它,只需通过访问mystring来使用它。

+0

对此使用静态设计只是不好的设计。我完全不会推荐它。 – 2014-11-03 12:31:51

相关问题