Xamarin, Как мне сразу очистить данные от сборщиков и Entry.Использование montemagno Xamarin.plugins.setting - PullRequest
0 голосов
/ 06 июля 2019

Когда я нажал Очистить, я хочу очистить сохраненные данные от моих сборщиков и ввода.Но я нажимаю на нее, она не сразу очищается.Я должен закрыть приложение, затем снова открыть, тогда все ясно.Я пытался выдвинуть пустые строки "", но это дало мне ошибки, а затем снова открылось снова и заморозило мое приложение.

void clearHandle_Clicked(object sender, System.EventArgs e)
{   
Settings.ClearAllData();
}

//then added to push empty string but got error
//UIApplication.Main(args, null, "AppDelegate");


void clearHandle_Clicked(object sender, System.EventArgs e)
{
DisplayAlert("EDIT", "Are you sure you want to clear data ", "OK");
nameEntry.Text = "";
nxPicker.SelectedItem = "";
locationPicker1.SelectedItem = "";
locationPicker2.SelectedItem = "";
locationPicker3.SelectedItem = "";
locationPicker4.SelectedItem = "";
locationPicker5.SelectedItem = "";
locationPicker6.SelectedItem = "";
locationPicker7.SelectedItem = "";
locationPicker8.SelectedItem = "";
Settings.ClearAllData();

}

1 Ответ

0 голосов
/ 10 июля 2019

Интересно, что события Click иногда выполняются для делегатов в Xamarin, как форм, так и Native.Поэтому я бы посоветовал поместить ваш четкий запрос в делегат диспетчера пользовательского интерфейса следующим образом:

void clearHandle_Clicked(object sender, System.EventArgs e)
{   
    Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{
        Settings.ClearAllData();
    });    
}


void clearHandle_Clicked(object sender, System.EventArgs e)
{
    DisplayAlert("EDIT", "Are you sure you want to clear data ", "OK");
    nameEntry.Text = "";
    nxPicker.SelectedItem = "";
    locationPicker1.SelectedItem = "";
    locationPicker2.SelectedItem = "";
    locationPicker3.SelectedItem = "";
    locationPicker4.SelectedItem = "";
    locationPicker5.SelectedItem = "";
    locationPicker6.SelectedItem = "";
    locationPicker7.SelectedItem = "";
    locationPicker8.SelectedItem = "";
    Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{
        Settings.ClearAllData();
    });
}
...