質問するログイン新規登録

回答編集履歴

2

追記2

2017/10/01 01:22

投稿

fiveHundred
fiveHundred

スコア10513

answer CHANGED
@@ -22,4 +22,59 @@
22
22
  追記:
23
23
  以上のような感じで答えてみたけど、どちらかというとboolean型というよりかは、``onTouchEvent()``の仕組みについて書いているようなような気がしてきました…。
24
24
  初歩的なことですが、boolean型は単純な値なので、trueが1、falseが0だと思っておけば間違いないと思います。
25
- そのため、boolean型そのものには仕組みも何もありません。
25
+ そのため、boolean型そのものには仕組みも何もありません。
26
+
27
+ ---
28
+ 追記2:
29
+
30
+ 基本的には、swordoneさんの回答の通りです。
31
+
32
+ swordoneさんが言っているメソッドとは、ここでは``onTouchEvent()``のことです。
33
+ ``onTouchEvent()``のreturnがtrueであれば、他の``onTouchEvent()``は実行されないということです(すでに実行されたものは除く)。
34
+
35
+ [私が記載したサイト](https://techbooster.org/android/application/715/)によれば、以下のような優先順位になっています。
36
+
37
+ > 上位のView>下位のView>Activity
38
+
39
+
40
+ これについてですが、例えば以下のようなソースがあるとします。
41
+
42
+ (上位レイヤーのView)
43
+ ```Java
44
+ public class AEventView extends View {
45
+ @Override
46
+ public boolean onTouchEvent(MotionEvent event) {
47
+ // 何か処理
48
+
49
+ return false;
50
+ }
51
+ }
52
+ ```
53
+
54
+ (下位レイヤーのView)
55
+ ```Java
56
+ public class BEventView extends View {
57
+ @Override
58
+ public boolean onTouchEvent(MotionEvent event) {
59
+ // 何か処理
60
+
61
+ return true;
62
+ }
63
+ }
64
+ ```
65
+
66
+ (Activity)
67
+ ```Java
68
+ public class CEventActivity extends Activity {
69
+ @Override
70
+ public boolean onTouchEvent(MotionEvent event) {
71
+ // 何か処理
72
+
73
+ return false;
74
+ }
75
+ }
76
+ ```
77
+
78
+ この状態では、全て``return false;``であれば 上位レイヤーのView→下位レイヤーのView→Activityの順番で呼ばれます。
79
+ しかし、下位レイヤーのViewでは``return true;``となっているので、Activityの``onTouchEvent()``が呼ばれなくなります。
80
+ 同様に、上位レイヤーのViewが``return true;``となっている場合は、下位レイヤーのViewとActivityの``onTouchEvent()``が呼ばれなくなります。

1

追記

2017/10/01 01:22

投稿

fiveHundred
fiveHundred

スコア10513

answer CHANGED
@@ -16,4 +16,10 @@
16
16
 
17
17
  また、ACTION_UP・ACTION_DOWNですが、タッチ押下するとACTION_DOWNが、指を持ち上げるとACTION_UPが、引数を通じて送られてきます。
18
18
  こちらは、「Aというボタンを押したらfoo(0)を、Bというボタンを押したらfoo(1)を呼び出す」というイメージになります。
19
- このACTION_UP・ACTION_DOWNは、boolean型とは直接関係ないです(ACTION_UP・ACTION_DOWNはboolean型ではありません)。
19
+ このACTION_UP・ACTION_DOWNは、boolean型とは直接関係ないです(ACTION_UP・ACTION_DOWNはboolean型ではありません)。
20
+
21
+ ---
22
+ 追記:
23
+ 以上のような感じで答えてみたけど、どちらかというとboolean型というよりかは、``onTouchEvent()``の仕組みについて書いているようなような気がしてきました…。
24
+ 初歩的なことですが、boolean型は単純な値なので、trueが1、falseが0だと思っておけば間違いないと思います。
25
+ そのため、boolean型そのものには仕組みも何もありません。