gpt4 book ai didi

c# - Xamarin Handler.Post 不调用 IRunnable.Run()

转载 作者:行者123 更新时间:2023-11-30 21:49:41 25 4
gpt4 key购买 nike

我正在尝试在 Xamarin 中运行此 Android 代码:

final Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
int hours = seconds/3600;
int minutes = (seconds%3600)/60;
int secs = seconds%60;

String time = String.format("%d:%02d:%02d", hours, minutes, secs);
timeView.setText(time);
if (running) {
seconds++;
}
handler.postDelayed(this, 1000);
}
});

我已经在 Xamarin 中尝试过了;

Test newTest = new Test(this);
Handler handler = new Handler();
handler.Post(newTest);

测试类是 IRunnable as

public class Test : IRunnable
{
MainActivity activity;
public Test(MainActivity test)
{
activity = test;
}

public IntPtr Handle
{
get
{
return (IntPtr)0;
}
}

public void Dispose()
{

}

public void Run()
{
Console.WriteLine("-------------------->Run called<-----------------------");
TextView stopWatch = activity.getTextView();
int hour = activity.seconds / 3600;
int minute = (activity.seconds % 3600) / 60;
int sec = activity.seconds % 60;

string time = string.Format("%d:%02d:%02d", hour, minute, sec);
stopWatch.Text = time;

if (activity.running == true)
{
activity.seconds++;
}

Handler handler = new Handler();
handler.PostDelayed(this, 1000);
}
}

程序运行但 Handler 没有调用 Run() 函数。我是 Xamarin 的新手。有什么解决办法吗?

最佳答案

这是一个典型的错误。提示隐藏在构建输出中。

Type 'App1.Test' implements Android.Runtime.IJavaObject but does not inherit from Java.Lang.Object. It is not supported.

每次实现Java接口(interface)时,您都必须继承Java.Lang.Object

public class Test : Java.Lang.Object, IRunnable
{
// ...
}

关于c# - Xamarin Handler.Post 不调用 IRunnable.Run(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36788344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com