在Xamarin上处理OnAttach(Activity)和OnAttach(Context)

时间:2017-11-30 10:12:17

标签: xamarin xamarin.android

我正在开发一个针对API 25但支持API 17的应用程序。

我以这种方式重写OnAttach(活动):

[TargetApi(Value = 17)]
public override void OnAttach(Activity activity)
{
    base.OnAttach(activity);
    _parent = (IParent)Activity;
}

但我收到警告:

  

警告CS0672:成员'SettingsFragment.OnAttach(活动)'覆盖   过时的成员'Fragment.OnAttach(活动)'。添加已过时   属性为'SettingsFragment.OnAttach(Activity)'。

使用OnAttach(上下文),应用程序在旧设备上崩溃。

那么,处理此警告的权利是什么?

非常感谢

1 个答案:

答案 0 :(得分:1)

自API级别23以来,

OnAttach (Activity activity)已弃用,请改用onAttach(Context)

用以下代码替换您的代码:

public override void OnAttach(Context context)
{
    base.OnAttach(context);
    Activity a;

    if (context is Activity){
        a = (Activity)context;
    }
 }