Проблема в том, что вы создаете экземпляр экземпляра MyApp
каждый раз, поэтому там нет постоянства данных.Существует много способов обмена данными в приложении, но есть пара подходов, которые вы можете использовать.
Один отличный способ хранить простые пары ключ / значение - это использовать встроенную систему предпочтений Android.Из Activity вы можете сделать:
var settings = PreferenceManager.GetDefaultSharedPreferences(ApplicationContext);
var editor = settings.Edit();
editor.PutString("key", "value");
editor.Commit();
var value = settings.GetString("key", null);
Другой метод - создать подкласс Application
, который будет действовать как глобальный класс приложения для вашего приложения:
[Application]
public class MyApplication : Application
{
public static string StaticString { get; set; }
public string InstanceString { get; set; }
public MyApplication(IntPtr handle, JniHandleOwnership transfer)
: base(handle, transfer)
{
}
}
будет одним экземпляром этого класса, работающим во всем приложении.Из Activity вы можете получить доступ к данным экземпляра класса, приведя свойство Application действия к вашему пользовательскому классу:
var instanceValue = ((MyApplication) Application).InstanceString;
В качестве альтернативы вы также можете использовать статическое свойство класса, если это лучше работает в вашей ситуации.:
var staticValue = MyApplication.StaticString;