【发布时间】:2016-03-28 14:51:19
【问题描述】:
我想显示一条 toast 消息。如果我在 onCreate() 中执行此操作,它会正常工作。但我想这样做,我得到一个错误:
Java.Lang.NullPointerException:尝试调用虚拟方法 'android.content.res.Resources android.content.Context.getResources()' 在空对象引用上
我该怎么办?
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, container, false);
add = view.FindViewById<Button>(Resource.Id.add);
add.Click += Click;
return view;
}
void Click(object sender, EventArgs eventArgs)
{
main.textToast( "I like Toast!");
}
}
【问题讨论】:
-
我会看到的是,如果“this”或“this”中的 toast 消息试图显示在上面的视图在您尝试显示 toast 的上下文中为 null消息。
-
我建议只使用创建 Fragment 的 Activity。您可以在
onAttach()方法中使用getActivity()以确保它是正确的引用。
标签: c# android xamarin toast android-toast