Xamarin Toast消息错误(C#)

时间:2016-03-28 14:51:20

标签: c# android xamarin toast android-toast

我想显示一个Toast Message。如果我在onCreate()中执行此操作,它可以正常工作。但我想这样做,我收到一个错误:

  

Java.Lang.NullPointerException:尝试调用虚方法   'android.content.res.Resources android.content.Context.getResources()'   在空对象引用上

我该怎么办?

<div id="textboxes">
<textarea id="input1" placeholder="First Name" rows="1" cols="10">
</textarea>
<textarea id="input2" placeholder="Surname" rows="1" cols="10"></textarea>
</div>

2 个答案:

答案 0 :(得分:6)

由于您手动创建并使用Java.Lang.NullPointerException的实例,因此会触发MainActivity

不使用MainActivity的自定义实例在Click中显示您的Toast消息,而是简化代码以使用片段现有活动参考:

public  void textToast(string textToDisplay) {               
    Toast.MakeText(this,
    textToDisplay, 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的实例。

请参阅:

答案 1 :(得分:1)

如果我理解你的问题,我认为一个好的解决方案可能是这个:

        public void makeToast(Context ctx, string str)
        {
            Toast.MakeText(ctx, str, ToastLength.Long).Show();
        }

当你在每个片段中使用它时,你可以把它称之为:

makeToast(this.Activity, "test!");

为我工作,让我知道:)。