2014-09-19 2 views
0

내 응용 프로그램과 함께 총을 복용 한 후 파일 미디어를 스캔하려면이 방법이 ..안드로이드 메서드에서 매개 변수를 가져옵니다

public static void refreshMedia() { 
     MediaScannerConnection.scanFile(this, 
       new String[] { photo.toString() }, null, 
       new MediaScannerConnection.OnScanCompletedListener() { 
      public void onScanCompleted(String path, Uri uri) { 
       Log.i("ExternalStorage", "Scanned " + path + ":"); 
       Log.i("ExternalStorage", "-> uri=" + uri);    
      } 
     }); 
    } 

지금 내가이 방법의 매개 변수 인 URI를 가져 오지 필요를 내가 어떻게 할 수 해? 난 .. 다른 클래스의 URI를 사용할 필요가 있기 때문에

답변

1
private static Uri mUri; // private variable in your class 
.... 
public static void refreshMedia() { 
    MediaScannerConnection.scanFile(this, 
      new String[] { photo.toString() }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 
     public void onScanCompleted(String path, Uri uri) { 
      mUri = uri; //<--Add this line to assign uri to mUri 
      Log.i("ExternalStorage", "Scanned " + path + ":"); 
      Log.i("ExternalStorage", "-> uri=" + uri);    
     } 
    }); 
} 

편집 : 내부

String mUri; //private variable 

: 다른 클래스에서

Intent i = new Intent(FirstScreen.this, SecondScreen.class); 
i.putExtra("MY_Uri", mUri); 

:

새로운 의도를 시작하기 전에 onCreate() :

Bundle extras = getIntent().getExtras(); 
if(extras == null) { 
    mUri= null; 
} else { 
    mUri= extras.getString("MY_Uri"); 
} 
+0

아니요, 변수는 정적이어야합니다. 클래스가 인스턴스화 된 경우'mUri'가 기본값으로 재설정됩니다 –

+0

Ok. 당신은 편집했습니다. –

+1

예 내 코드를 편집했습니다. :) –

1

getter 및 setter를 사용하여 클래스 수준에서 변수 static을 만듭니다.

private static Uri uri; 

그런 다음 다른 곳에서이 값을 얻기 위해 uri을 저장하십시오.

public static void refreshMedia() { 
    MediaScannerConnection.scanFile(this, 
      new String[] { photo.toString() }, null, 
      new MediaScannerConnection.OnScanCompletedListener() { 
       public void onScanCompleted(String path, Uri uri) { 
        YourClassName.uri=uri; // store uri 
        Log.i("ExternalStorage", "Scanned " + path + ":"); 
        Log.i("ExternalStorage", "-> uri=" + uri); 
       } 
      }); 
} 
관련 문제