我曾经像这样创建它
[OrderedDict([('Device', 'Energy [kWh]'),
('Measure', '0.01'),
('Time', '2017-12-01T13:54:04')]),
OrderedDict([('Device', 'Voltage [V]'),
('Measure', '221.64'),
('Time', '2017-12-01T13:54:04')]),
OrderedDict([('Device', 'Current [A]'),
('Measure', '0.08'),
('Time', '2017-12-01T13:54:04')])]
它工作正常。但是Forms.Context现在已经过时了,所以我把它改成了
AlertDialog.Builder b = new AlertDialog.Builder( Forms.Context );
现在它崩溃了
AlertDialog.Builder b = new AlertDialog.Builder( Android.App.Application.Context );
我尝试了替代构造函数
Android.Content.Res.Resources+NotFoundException: Resource ID #0x0
与
崩溃 AlertDialog.Builder b = new AlertDialog.Builder( Android.App.Application.Context, Resource.Style.Theme_AppCompat_Light );
那么我在XF2.5中传递给AlertDialog.Builder()的上下文是什么?我不想为此安装第三方库。
答案 0 :(得分:0)
一种方法是在Main Activity中创建一个静态变量,如下所示
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
internal static MainActivity Instance { get; private set; }
protected override void OnCreate(Bundle bundle)
{
...
global::Xamarin.Forms.Forms.Init(this, bundle);
Instance = this;
LoadApplication(new App());
}
}
在你的代码中像这样引用它
AlertDialog.Builder b = new AlertDialog.Builder( MainActivity.Instance );
有关详细信息和实现此目的的其他方法,see David Britchs blog post