回答編集履歴

2

追記2

2017/10/01 01:22

投稿

fiveHundred
fiveHundred

スコア10152

test CHANGED
@@ -47,3 +47,113 @@
47
47
  初歩的なことですが、boolean型は単純な値なので、trueが1、falseが0だと思っておけば間違いないと思います。
48
48
 
49
49
  そのため、boolean型そのものには仕組みも何もありません。
50
+
51
+
52
+
53
+ ---
54
+
55
+ 追記2:
56
+
57
+
58
+
59
+ 基本的には、swordoneさんの回答の通りです。
60
+
61
+
62
+
63
+ swordoneさんが言っているメソッドとは、ここでは``onTouchEvent()``のことです。
64
+
65
+ ``onTouchEvent()``のreturnがtrueであれば、他の``onTouchEvent()``は実行されないということです(すでに実行されたものは除く)。
66
+
67
+
68
+
69
+ [私が記載したサイト](https://techbooster.org/android/application/715/)によれば、以下のような優先順位になっています。
70
+
71
+
72
+
73
+ > 上位のView>下位のView>Activity
74
+
75
+
76
+
77
+
78
+
79
+ これについてですが、例えば以下のようなソースがあるとします。
80
+
81
+
82
+
83
+ (上位レイヤーのView)
84
+
85
+ ```Java
86
+
87
+ public class AEventView extends View {
88
+
89
+ @Override
90
+
91
+ public boolean onTouchEvent(MotionEvent event) {
92
+
93
+ // 何か処理
94
+
95
+
96
+
97
+ return false;
98
+
99
+ }
100
+
101
+ }
102
+
103
+ ```
104
+
105
+
106
+
107
+ (下位レイヤーのView)
108
+
109
+ ```Java
110
+
111
+ public class BEventView extends View {
112
+
113
+ @Override
114
+
115
+ public boolean onTouchEvent(MotionEvent event) {
116
+
117
+ // 何か処理
118
+
119
+
120
+
121
+ return true;
122
+
123
+ }
124
+
125
+ }
126
+
127
+ ```
128
+
129
+
130
+
131
+ (Activity)
132
+
133
+ ```Java
134
+
135
+ public class CEventActivity extends Activity {
136
+
137
+ @Override
138
+
139
+ public boolean onTouchEvent(MotionEvent event) {
140
+
141
+ // 何か処理
142
+
143
+
144
+
145
+ return false;
146
+
147
+ }
148
+
149
+ }
150
+
151
+ ```
152
+
153
+
154
+
155
+ この状態では、全て``return false;``であれば 上位レイヤーのView→下位レイヤーのView→Activityの順番で呼ばれます。
156
+
157
+ しかし、下位レイヤーのViewでは``return true;``となっているので、Activityの``onTouchEvent()``が呼ばれなくなります。
158
+
159
+ 同様に、上位レイヤーのViewが``return true;``となっている場合は、下位レイヤーのViewとActivityの``onTouchEvent()``が呼ばれなくなります。

1

追記

2017/10/01 01:22

投稿

fiveHundred
fiveHundred

スコア10152

test CHANGED
@@ -35,3 +35,15 @@
35
35
  こちらは、「Aというボタンを押したらfoo(0)を、Bというボタンを押したらfoo(1)を呼び出す」というイメージになります。
36
36
 
37
37
  このACTION_UP・ACTION_DOWNは、boolean型とは直接関係ないです(ACTION_UP・ACTION_DOWNはboolean型ではありません)。
38
+
39
+
40
+
41
+ ---
42
+
43
+ 追記:
44
+
45
+ 以上のような感じで答えてみたけど、どちらかというとboolean型というよりかは、``onTouchEvent()``の仕組みについて書いているようなような気がしてきました…。
46
+
47
+ 初歩的なことですが、boolean型は単純な値なので、trueが1、falseが0だと思っておけば間違いないと思います。
48
+
49
+ そのため、boolean型そのものには仕組みも何もありません。