Mic*_*ern 9 android dependency-injection xamarin.android xamarin xamarin.forms
我目前正在开发一个Xamarin.Forms可在Android和iOS平台上使用的应用程序.首次在设备上加载应用程序时,我会检查设备上是否有可用的Internet连接.如果互联网连接不可用,我想显示一个对话框.
以下是我用来检查互联网的以下代码片段 Xamarin.Forms.ContentPage
if(App.Connectivity.IsNetworkConnectivityAvailable())
{
App.Notification.DisplayLocalNotifications("No Internet", "You need an internet connection to access certain application content");
}
Run Code Online (Sandbox Code Playgroud)
我正在使用依赖注入来构建适当的模块来处理每个适当环境的对话框.Android正在抛出以下异常
Android.Views.WindowManagerBadTokenException:无法添加窗口 - 令牌null不适用于应用程序以下是Android上DisplayLocalNotification方法的代码:
public void DisplayLocalNotification(string title, string content)
{
AlertDialog.Builder builder = new AlertDialog.Builder(Application.Context)
.SetTitle(title)
.SetMessage(content)
.SetCancelable(true)
.SetPositiveButton("OK", (EventHandler<DialogClickEventArgs>) null);
AlertDialog alert = builder.Create();
alert.Show();
var okBtn = alert.GetButton((int)DialogButtonType.Positive);
okBtn.Click += (sender, args) =>
{
alert.Dismiss();
};
}
Run Code Online (Sandbox Code Playgroud)
在做了一些研究之后,我需要将当前活动传递给AlertDialog.Builder构造函数而不是Application.Context.当您需要活动上下文之外的活动时,如何从应用程序上下文中获取当前活动对象?
SKa*_*all 24
Xamarin.Forms Android平台代码应将当前Activity分配到Forms.Context属性中.这是静态Forms类,如果您调试它,您将看到Forms.Context是一个Activity.
public static class Forms
{
public static Context Context { get; }
public static bool IsInitialized { get; }
public static event EventHandler<ViewInitializedEventArgs> ViewInitialized;
public static void Init(Activity activity, Bundle bundle);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26550 次 |
| 最近记录: |