私はLinearLayoutに配置したカスタムビューのリスナーを設定しようとしています。これらのビューは、特定のファイルやデータに応じてコードによって作成されるため、そこに存在するビューの数はわかりません。 OnClickListenerは設定されていますが、onClick()は呼び出されません。リスナーは機能しません
@Override
protected void onResume() {
super.onResume();
try {
setupBackEnd();
} catch (IOException e) {
Toast.makeText(this, "Error Reading or Writing data in Storage, Try to restart the App", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
Toast.makeText(DayActivity.this, "Child count: " + linearList.getChildCount(), Toast.LENGTH_SHORT).show();
for (int i = 0; i < linearList.getChildCount(); i++) {
linearList.getChildAt(i).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(DayActivity.this, "clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
これは私のコードです。子供の眺めが既にそこにあることを確かめるために、私はトーストを見せてくれました。それは私に "子供の数:5"を与えましたが、 "クリックしました"トーストは決して現れません。自分のカスタムビューがクリック可能であることを確認しました(リニアリストの子)。しかし、リスナーは何らかの理由で動作しません。なぜ誰も知っていますか?
編集:私はコードをデバッグしようとした後、私はこのエラーを得た:
10-27 18:52:26.309 17630-17630/osm_cave.timecave E/AndroidRuntime: FATAL EXCEPTION: main
Process: osm_cave.timecave, PID: 17630
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.widget.Toast$TN.handleShow(Toast.java:459)
at android.widget.Toast$TN$2.handleMessage(Toast.java:342)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
c
私がブレークポイントでデバッグするとき、それはのみ表示され、デバッグせずにアプリを起動すると、このエラーは表示されません。このエラーは、もはや存在しないコンテキストを使用しようとしていることを意味するはずですが、私はそれほど問題ではありません。
デバッグ中にエラーが発生した場合、通常は[競合状態](https://en.wikipedia.org/wiki/Race_condition)を示します – Jon
修正できますか? –