【发布时间】: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