【问题标题】:Toast message in new item, using visual studio (Xamarin)新项目中的 Toast 消息,使用 Visual Studio (Xamarin)
【发布时间】:2018-08-23 15:20:14
【问题描述】:

我做了一个简单的程序,包括TextView和Button;并且每次单击 Button 时,TextView 上的计数器都会增加 1。 我还希望每次单击按钮时都会看到 toast 消息。

我在 Visual Studio 中打开了一个新项目:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Support.V7.App;

namespace perek1_helek1_dug1_listening
{

    class Game_code : Button, Android.Views.View.IOnClickListener
    {
        private int point = 0;
        private TextView screen;

        public Game_code( TextView screen, Context context):base(context)
        {
            this.screen = screen;

        }

        public static void ShowToastMethod(Context context)
        {
            Toast.MakeText(context, "mymessage ", ToastLength.Long).Show();
        }



        public void OnClick(View v)
        {
            if (v.Id == Resource.Id.btnxml)
            {
                point++;
                **ShowToastMethod( context);**


            }
            screen.Text = "" + point;

        }


    }
}

这就是 MainActivity.cs 的样子:

using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;

namespace perek1_helek1_dug1_listening
{
    [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        TextView tv;
        Button btn; 

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource

            SetContentView(Resource.Layout.activity_main);

            tv = (TextView)FindViewById(Resource.Id.textboxml);
            btn = (Button)FindViewById(Resource.Id.btnxml);

            Game_code game = new Game_code(tv, this); 
            btn.SetOnClickListener(game);
        }


    }
}

但是,行:

ShowToastMethod( context);

会出错。我该怎么办?

【问题讨论】:

  • 错误是什么?我不习惯使用 Xamarin 进行开发,但我认为您的 context 对象未初始化
  • 试试关键字“this”
  • 好吧,老实说,这不是你如何做到的,这里的主要问题是从按钮继承,这无论如何都是毫无意义的xamarin 默认提供的 c# 绑定,其工作方式相同。

标签: c# android xamarin.android visual-studio-2017


【解决方案1】:

我建议你使用 C# 提供的事件:

int point=0;
.
.
.
//after you find button view by ID

btn.Click+= delegate {
 tv.Text=point++;
 ShowToastMethod();
     };

public void ShowToastMethod()
    {
        Toast.MakeText(this, "mymessage ", ToastLength.Long).Show();
    }

【讨论】:

    【解决方案2】:

    我搜索了一下,发现我所要做的就是换行:

    ShowToastMethod( context);
    

    到:

    ShowToastMethod(this.Context );
    

    还是谢谢你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多