Как получить доступ к переменной?
Как получить доступ к переменной?
Есть такая функция
public void CaptureMapScreen() {
GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
Bitmap bitmap;
String name = null;
@Override
public void onSnapshotReady(Bitmap snapshot) {
bitmap = snapshot;
try {
name = "POI" + System.currentTimeMillis() + ".png";
FileOutputStream out = new FileOutputStream(Main.SCREEN_SHOTS_LOCATION + name);
bitmap.compress(Bitmap.CompressFormat.PNG, 75, out);
} catch (Exception e) {
e.printStackTrace();
}
}
};
myMap.snapshot(callback);
}
Как правильно получить извне значение переменной NAME?
public void CaptureMapScreen() {
GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
Bitmap bitmap;
String name = null;
@Override
public void onSnapshotReady(Bitmap snapshot) {
bitmap = snapshot;
try {
name = "POI" + System.currentTimeMillis() + ".png";
FileOutputStream out = new FileOutputStream(Main.SCREEN_SHOTS_LOCATION + name);
bitmap.compress(Bitmap.CompressFormat.PNG, 75, out);
} catch (Exception e) {
e.printStackTrace();
}
}
};
myMap.snapshot(callback);
}
Как правильно получить извне значение переменной NAME?
Re: Как получить доступ к переменной?
Никак. Нужно создать переменную name за пределами функции и использовать её.
Re: Как получить доступ к переменной?
Пробовал. Сначала требует сделать переменную final, а потом все равно не видит.Perfomer писал(а):Никак. Нужно создать переменную name за пределами функции и использовать её.
Re: Как получить доступ к переменной?
Код покажите, где Вы создали переменную вне функции.
Re: Как получить доступ к переменной?
return name ?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Как получить доступ к переменной?
doter.ua писал(а):return name ?
Я еще новичок в Jave. И попытка переопределить встроенную функцию, что бы она возвращала параметр, мне не удалось. Среда программирования ругается на несовместимость.
А вот описав в корне класса переменную типа "protected String nameImage" удалось сделать её видимой в этой процедуре. Правильно ли это?
Re: Как получить доступ к переменной?
CaptureMapScreen встроенная функция?MrBAD писал(а):doter.ua писал(а):return name ?
Я еще новичок в Jave. И попытка переопределить встроенную функцию, что бы она возвращала параметр, мне не удалось. Среда программирования ругается на несовместимость.
А вот описав в корне класса переменную типа "protected String nameImage" удалось сделать её видимой в этой процедуре. Правильно ли это?
З.Ы. "описав в корне класса" так тоже можно, но тогда переменная будет занимать память в течении всей жизни экземпляра класса(в данном случае активити). После работы с переменной можно ее обнулить = null и сборщик мусора разберется с ней.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Как получить доступ к переменной?
Как создать, какую??????MrBAD писал(а):Пробовал. Сначала требует сделать переменную final, а потом все равно не видит.Perfomer писал(а):Никак. Нужно создать переменную name за пределами функции и использовать её.
пробовал:
final String name;
потом
name = "POI" + System.currentTimeMillis() + ".jpeg";
CaptureMapScreen();
внутри CaptureMapScreen() - отладка выдает что name = null;
Функция
// захват снимка карты для сервиса Google
public void CaptureMapScreen() {
GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() {
Bitmap bitmap;
@Override
public void onSnapshotReady(Bitmap snapshot) {
bitmap = snapshot;
try {
Log.d(Main.TAG, "image name on capture " + name);
FileOutputStream out = new FileOutputStream(Main.SCREEN_SHOTS_LOCATION +
name);
if (out != null) { bitmap.compress(Bitmap.CompressFormat.JPEG, 85, out); }
out.close();
// MediaStore.Images.Media.insertImage(getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()); // регистрация в фотоальбоме
} catch (Exception e) {
e.printStackTrace();
}
}
};
myMap.snapshot(callback);
}
мне надо передать в нее имя файла (name) для сохранения картинки в асинхронном потоке (как я понимаю) реализованным "GoogleMap.SnapshotReadyCallback callback......"
Прошу помощи! HELP!