У меня есть следующий код:Xamarin, C#, ALertDialog и OnBackPressed
using Android.App;
using Android.OS;
using Android.Util;
using Android.Views;
namespace TestIt {
[Activity(Label = "TestIt", MainLauncher = true, Icon = "@drawable/icon", Theme = "@android:style/Theme.Dialog")]
public class TestIt:Activity {
public static readonly string progName = "TestIt";
public static AlertDialog builder = null;
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
Log.Debug(progName, "OnCreate entered");
builder = (new AlertDialog.Builder(this)).Create();
Log.Debug(progName, "Build Alert");
builder.Window.SetType(WindowManagerTypes.SystemAlert);
builder.SetCancelable(true);
builder.SetTitle("Test");
builder.SetMessage("This is a test message");
builder.Show();
Log.Debug(progName, "Build Alert Ending");
}
public override void OnBackPressed() {
Log.Debug(progName, "OnBackPressed Entered");
if(builder != null) {
builder.Cancel();
}
base.OnBackPressed();
Finish();
}
}
}
Все отлично работает и отображается предупреждение.
Но OnBackPressed НЕ вводится при нажатии клавиши «Назад».
Вместо этого я получаю сообщение в LogCat:
Попытался закончить событие ввода, но приемник событий ввода уже был удален.
Я видел несколько Java и пару попыток Xamarin решить эту проблему, но техника, как правило, глубоко погружена в функцию образца.
Может ли кто-нибудь предложить некоторые идеи C# (Xamarin) о том, как адаптировать этот код так, чтобы был введен OnBackPressed (или альтернативный вариант).
Мне просто нужно добраться до клавиши «Назад».
С уважением, Джим
Это решение сделало именно то, что я хотел. Я все еще получаю сообщение, но OnBackPressed введен, и я могу делать то, что мне нужно. Большое спасибо. – user1047857
@ user1047857 если это ответит на ваш вопрос, примите ответ. Вопрос не должен оставаться в списке без ответа. http://meta.stackexchange.com/a/5235/324631 –