Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不接受邮件?_C#_Android_C# 4.0_Xamarin - Fatal编程技术网

C# 为什么不接受邮件?

C# 为什么不接受邮件?,c#,android,c#-4.0,xamarin,C#,Android,C# 4.0,Xamarin,在WinForms下工作,所以没有 将来,我想以某种方式显示所有帖子。但直到这个阶段还没有达到,因为现在连一条信息都不被接受 public class MainActivity : Activity { public string mess; protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); // Set our view from th

在WinForms下工作,所以没有

将来,我想以某种方式显示所有帖子。但直到这个阶段还没有达到,因为现在连一条信息都不被接受

public class MainActivity : Activity
{
    public string mess;

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.Main);
        StartListening ();

        Button bt = FindViewById<Button>(Resource.Id.button1);
        bt.Click += delegate { start();};
        // Get our button from the layout resource, and attach an event to it
    }

    public void start()
    {
        TextView text = FindViewById<TextView> (Resource.Id.textView1);

        StartListening();
        text.Text = mess;
    }

    private readonly UdpClient udp = new UdpClient(45000);

    public void StartListening()
    {
        this.udp.BeginReceive(Receive, new object());
    }

    public void Receive(IAsyncResult ar)
    {
        IPEndPoint ip = new IPEndPoint(IPAddress.Any, 45000);
        byte[] bytes = udp.EndReceive(ar, ref ip);

        mess = Encoding.ASCII.GetString(bytes);
        StartListening();
    }
}
公共类main活动:活动
{
公共字符串混乱;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.Main);
惊人的倾听();
按钮bt=FindViewById(Resource.Id.button1);
bt.Click+=委托{start();};
//从布局资源中获取我们的按钮,并将事件附加到它
}
公开作废开始()
{
TextView text=findviewbyd(Resource.Id.textView1);
惊人的倾听();
text.text=mess;
}
私有只读UdpClient udp=新UdpClient(45000);
公营机构
{
this.udp.BeginReceive(Receive,new object());
}
公共无效接收(IAsyncResult ar)
{
IPEndPoint ip=新IPEndPoint(IPAddress.Any,45000);
byte[]bytes=udp.EndReceive(ar,ref-ip);
mess=Encoding.ASCII.GetString(字节);
惊人的倾听();
}
}

如果你调试你的代码,你会看到在调试时会发生什么!所以试试这个,我相信你会惊讶于解决你的问题是多么容易

无论如何,您设置消息的方式不正确。请尝试此代码。它删除消息状态(功能编程),并在收到消息后设置消息

public class MainActivity : Activity
{
    private readonly UdpClient udp = new UdpClient(45000);

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.Main);
        StartListening();
        Button bt = FindViewById<Button>(Resource.Id.button1);
        bt.Click += delegate { StartListening(); };
    }

    public void StartListening()
    {
        this.udp.BeginReceive(Receive, new object());
    }

    public void Receive(IAsyncResult ar)
    {
        IPEndPoint ip = new IPEndPoint(IPAddress.Any, 45000);
        byte[] bytes = udp.EndReceive(ar, ref ip);
        DisplayMessage(Encoding.ASCII.GetString(bytes));
        StartListening();
    }

    public void DisplayMessage(string message)
    {
        FindViewById<TextView>(Resource.Id.textView1).Text = message;
    }
}
公共类main活动:活动
{
私有只读UdpClient udp=新UdpClient(45000);
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
惊人的倾听();
按钮bt=FindViewById(Resource.Id.button1);
bt.Click+=委托{StartListening();};
}
公营机构
{
this.udp.BeginReceive(Receive,new object());
}
公共无效接收(IAsyncResult ar)
{
IPEndPoint ip=新IPEndPoint(IPAddress.Any,45000);
byte[]bytes=udp.EndReceive(ar,ref-ip);
DisplayMessage(Encoding.ASCII.GetString(字节));
惊人的倾听();
}
公共无效显示消息(字符串消息)
{
findviewbyd(Resource.Id.textView1).Text=message;
}
}

你的问题有点让人困惑。你能详细说明你的问题和你的要求吗?还包括调试信息。已标记。请阅读如何提出一个好问题,并告诉我们您在寻找什么。确切的问题是-为什么此代码不显示消息?问题是该文本。文本是在收到消息之前设置的。要么在Receive()中设置文本值,要么在填充mess时创建事件。@AlexeyKleandrov:您调试过
start()
方法吗?调用
FindViewById()
是否提供了正确的控件,以及
mess
变量中是否确实存在消息?我尝试了类似的选项。不幸的是,他和你的同事都没有工作。@AlexeyKleandrov:请你调试一下这个解决方案好吗?如果它不起作用,我怀疑
findviewbyd(Resource.Id.textView1)
不能像您期望的那样完成它的工作。可以肯定的是,问题中的代码是不正确的,因为显示消息的时间不对。同样,调试将帮助您回答这个问题-我们不能在这里调试,您可以。@AlexeyKleandrov:不需要任何东西,只需调试并检查调用
DisplayMessage()
时会发生什么。在此之前,此方法没有得到它。@AlexeyKleandrov:请澄清您的评论。我不明白。总结一下回答:请根据这个答案调整代码,然后在
DisplayMessage()
和任何您想要的地方使用断点进行调试。通过代码进行调试可能会为您的问题提供答案。