У меня есть объект File, называемый currentFile. Когда currentFile был изменен, и пользователь попытается открыть новый файл без сохранения, сначала появится диалоговое окно «Сохранить», и если «Да» нажата, будет сохранен текущий файл. Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю новое действие и нажимаю кнопку Android назад, currentFile имеет значение null, поэтому изменение файла, попытка открытия нового приводит к исключению NullPointerException. Как я могу сохранить текущую текущую активность?Как я могу сохранить переменную через действия?
ответ
Там в несколько способов сделать это, в зависимости от того, что вы хотите вы должны поставить на баланс, что лучше для ваших потребностей, один из способов является использование дополнительных услуг, чтобы передать значение переменной в другой деятельности
Bundle extras = new Bundle();
extras.putString(key, value);
Intent intent = new Intent("your.activity");
intent.putExtras(extras);
startActivity(intent);
другой подход заключается в установке переменной в контексте приложения, создавая класс, расширяющий е ром приложений и которые ссылаются вы сможете получить от какой-либо деятельности с использованием
YorApplicationClass app = (YorApplicationClass)getApplication();
app.getYourVariable();
И последнее я могу думать использует SharedPreferences, хранения переменных в виде пар ключ/значение, которые могут быть использованы для любой деятельности ...
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Editor edit = pref.edit();
edit.putString(key, value);
edit.commit();
//Any activity
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
pref.getString(key, defValue);
С уважением!
Спасибо! расширение класса Application является новым для меня, поэтому изучение этого стало для меня еще одним шагом вперед. – RapsFan1981
Отлично, не забудьте объявить его в теге приложения манифеста, чтобы получить правильную ссылку ... С уважением –
Вы можете сделать это, используя Intents
& Extras
.
String yourFileName = "path/to/your/file";
Intent intent = new Intent(currentActivity, newActivity.class);
intent.putExtra("FileName", yourFileName);
startActivity(intent);
Тогда в вашей новой деятельности:
Bundle extras = getIntent().getExtras();
if (extras != null) {
String file = extras.getString("FileName");
}
Вот некоторые чтения на Intents
: http://developer.android.com/reference/android/content/Intent.html
Я использую это для кнопки возврата приложения, но у меня возникла проблема с кнопкой назад Android, если пользователь использует кнопку «Назад» Android, а не мою кнопку. – RapsFan1981
Вы также могли бы сделать это с помощью Application класса. Мне легче работать, чем использовать пакеты и намерения.
Чтобы получить доступ к классу приложений, просто позвоните getApplicationContext в какой-либо деятельности, и приведения его к вашему типу класса, который проходит Application следующим образом:
public class MyActivity extends Activity{
public void onCreate(Bundle bundle){
MyApplicationClass app = (MyApplicationClass)this.getApplication();
}
}
- 1. Могу ли я сохранить переменную в объекте?
- 2. Как я могу сохранить выходы greasemonkey через многочисленные вкладки
- 3. Как я могу сохранить значение из итератора в локальную переменную?
- 4. Как я могу сохранить переменную, которая должна использоваться для сравнения
- 5. Как я могу сохранить переменную все время без глобальных переменных?
- 6. Как я могу сохранить содержимое указателя в переменную?
- 7. Как я могу сохранить вывод системной функции Perl в переменную?
- 8. Как я могу сохранить вывод putchar в переменную
- 9. Как я могу отлаживать действия?
- 10. Как я могу получить действия, опубликованные на facebook через API?
- 11. Как я могу обрабатывать игровые действия через REST API?
- 12. Как я могу отправить данные через действия для отображения сообщения?
- 13. Как я могу использовать db через различные действия в android?
- 14. Lua: как я могу указать на элемент массива через переменную?
- 15. Python pandas, как я могу передать двоеточие «:» указателю через переменную
- 16. Как я могу получить HTML-элемент с jQuery через переменную?
- 17. Как я могу определить тип битовой строки через переменную
- 18. Как я могу отправить переменную через php-страницы
- 19. Java: как я могу указать элемент массива через переменную?
- 20. как я могу передать переменную
- 21. Как я могу запросить переменную?
- 22. как я могу разместить переменную?
- 23. Как я могу очистить переменную?
- 24. Как я могу хранить глобальную переменную count?
- 25. Могу ли я сохранить переменную процесса узла в JSON?
- 26. Как я могу сохранить процесс?
- 27. Как сохранить переменную постоянно?
- 28. Как сохранить переменную Javascript?
- 29. Как передать переменную через область действия в директиву
- 30. Как я могу сохранить значение в angular.js?
Можете ли вы опубликовать какой-то код, сообщения, подобные этим, как правило, проголосовали. – yams
Также вы можете использовать статическую переменную. – yams
Да, я просто не уверен, что мне нужно вставить. Gimme a sec – RapsFan1981