2016-04-22 16 views
2

を呼び出しません。Xamarin Handler.Postは、私はXamarinに、このAndroidのコードを実行しようとしていますIRunnable.Run()

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

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); 
    } 
} 

などのプログラムの実行が、 HandlerRun()関数を呼び出していません。私はXamarinが初めてです。どんな解決策ですか?

答えて

3

これは一般的なエラーです。 ビルド出力にヒントが表示されません。

タイプ 'App1.Test'はAndroid.Runtime.IJavaObjectを実装しますが、Java.Lang.Objectから継承しません。サポートされていません。

毎回、あなたはJavaインタフェースを実装、あなたはJava.Lang.Objectから継承しなければなりません。

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

ありがとうございました。 – Santosh

関連する問題