从android方法获取参数

时间:2014-09-19 10:34:26

标签: java android uri

我使用此方法在使用我的应用程序拍摄后扫描文件媒体:

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 ..

2 个答案:

答案 0 :(得分: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);             
        }
    });
}

修改

在开始新意图之前:

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

在其他课程中:

String mUri; //private variable

onCreate()内:

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

答案 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);
                }
            });
}