2014-11-03 7 views
0

나는 안드로이드하지 좋은거야 그래서 난 그냥 당신에게 물어거야이 :를 사용하여 여러 하나의 문자열 "클래스"

나는 내 위치 수신기에서 일부 "데이터"(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; 

네,이 위치 수신기가 있습니까 :

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] [1] : http://stackoverflow.com/questions/4646577/global-variables-in-java – Paramone

+1

이 매우 조심하시기 바랍니다! 잠시 동안 애플리케이션이 비활성 상태이면 Android가 RAM을 확보하기 위해 정적 컨텐츠를 삭제할 수 있습니다. 활동이 다시 활성화되면 해당 필드는 null입니다! (그들을 액세스하기 전에, 만약 그들이 Nulled 있는지 확인하고 적절하게 처리) – Michael

답변

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

0

, 클래스 명 통한 액세스를 당신이 교실 밖에서 사용하거나 같은 지구 같은 클래스 througthout에 액세스 할 할 변수,

public static String mystring; 

선언 .mystring. 동일한 클래스에서 액세스하려면 mystring에 액세스하여 사용하십시오.

+0

이것에 대한 통계를 사용하는 것은 나쁜 디자인입니다. 나는 그것을 완전히 추천하지 않을 것이다. –