Xamarin Toast消息错误(C#)
发布时间:2020-12-15 23:31:51 所属栏目:百科 来源:网络整理
导读:我想显示一个Toast Message.如果我在onCreate()中执行此操作,它可以正常工作.但我想这样做,我得到一个错误: Java.Lang.NullPointerException: Attempt to invoke virtual method ‘android.content.res.Resources android.content.Context.getResources()’
我想显示一个Toast Message.如果我在onCreate()中执行此操作,它可以正常工作.但我想这样做,我得到一个错误:
我该怎么办? public void textToast(string textToDisplay) { Toast.MakeText(this,textToDisplay,ToastLength.Long).Show(); } class SampleTabFragment : Fragment { Button add; MainActivity main = new MainActivity(); public override View OnCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { base.OnCreateView(inflater,container,savedInstanceState); var view = inflater.Inflate(Resource.Layout.Tab,false); add = view.FindViewById<Button>(Resource.Id.add); add.Click += Click; return view; } void Click(object sender,EventArgs eventArgs) { main.textToast( "I like Toast!"); } } 解决方法
由于您手动创建和使用MainActivity实例,因此会触发Java.Lang.NullPointerException.
而不是使用MainActivity的自定义实例在Click中显示Toast消息,而是简化代码以使用片段现有活动参考: public void textToast(string textToDisplay) { Toast.MakeText(this,ToastLength.Long).Show(); } class SampleTabFragment : Fragment { Button add; // Remove manual creation code // MainActivity main = new MainActivity(); // ... void Click(object sender,EventArgs eventArgs) { (Activity as MainActivity).textToast( "I like Toast!"); } } 此代码假定拥有活动始终是MainActivity的实例. 看到: > Fragment getActivity() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Guzz源码分析(二) guzz解析guzz.xml
- c# – System.Net.Http.WebRequestHandler源代码在哪里?
- FLEX读取带有xmlns命名空间的xml
- Tiny210(S5PV210) U-BOOT(四)----Nand Flash原理(1)
- c# – SharpZipLib创建一个带有内存字符串的存档,并作为附件
- 依赖注入框架dagger2的@Scope注解初探(根据生成的源码进行
- c – GTK:完全摆脱系统主题/ CSS
- swift - label 的font 设置 文字字体和大小
- swift – 编译器错误:使用Objective-C选择器的方法与使用相
- 在swift中对成员’joinWithSeparator’的模糊引用