私はこのコードを使用する場合:MainActivity findViewByIdへのアクセスを取得するには、ブロードキャスト受信者の受信方法の中から?
@Override
public void onReceive(Context context, Intent intent) {
seconds += 0.1;
if (seconds > 59.9) {
seconds=0;
minutes++;
}
TextView tv = (TextView)((MainActivity)context).findViewById(R.id.txtChron);
tv.setText (String.valueOf(minutes) + ":" + String.valueOf(seconds));
}
をMainActivity
にコンテキストをキャストしようとしたとき、私はエラーを取得します。ここで
エラー/スタックトレースです:
E/AndroidRuntime:致命的な例外:メインプロセス: com.example.jordanbleu.lab8chronservjordanbleu、PID:22693 java.lang.RuntimeException:エラー放送受信 android.app.LoadedApk $ ReceiverDispatcher $ Args.runで com[email protected]d9365feに意図{ 行為= com.example.jordanbleu.lab8chronservjordanbleu.MY_TIME_TICK FLG = 0x10を}(LoadedApk.java :1132) android.o android.appでandroid.os.Looper.loop(Looper.java:154)で android.os.Handler.dispatchMessage(Handler.java:95)でs.Handler.handleCallback(Handler.java:751)。 ActivityThread.main(ActivityThread.java:6119)at java.lang.reflect.Method.invoke(ネイティブメソッド)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 原因:java.lang.ClassCastException:android.app.Applicationは にキャストできませんcom.example.jordanbleu.lab8chronservjordanbleu.MainActivityにキャスト com。 example.jordanbleu.lab8chronservjordanbleu.ChronometerReceiver.onReceive(ChronometerReceiver.java:41) at android.app.LoadedApk $ ReceiverDispatcher $ Args.run(LoadedApk.java:1122)android.os.Handler.handleCallback(Handler.java:751) の android.os.Handler.dispatchMessage(Handler.java:95 )at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:6119)at java.lang.reflect.Method.invoke(ネイティブメソッド)at com.android.internal.os.ZygoteInit.mainでcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) (ZygoteInit.java:776)
だから私は持っていますMainActivity
、サービスを開始します。サービスは新しいスレッドを作成し、このスレッドは暗黙のインテントを常に作成し、BroadcastReceiver
によって処理されます。この放送受信機は、時計を更新し、レイアウト内の更新された時刻でTextView
を更新する。しかし、contextパラメータを使ってfindViewByID
にアクセスしようとすると、上記のエラーが出ます。