回答編集履歴
3
レイアウトの崩れを直した。
test
CHANGED
@@ -110,6 +110,8 @@
|
|
110
110
|
|
111
111
|
* 必要時に EditText を表示して、不要になったら非表示にする。
|
112
112
|
|
113
|
+
|
114
|
+
|
113
115
|
ちなみにどっちもできます。
|
114
116
|
|
115
117
|
前者なら ViewGroup.addView/removeView を使います。初期レイアウトに配置しません。
|
2
気になった点を微修正。
test
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
なぜなら作成中のプログラムには着目したいポイントとは関係ない要素が詰まっていて試行錯誤の邪魔になるからです。
|
62
62
|
|
63
|
-
例えば着目ポイントがいくつかの画面を遷移した先の画面にあるとしましょう。試すの面倒ですよね?
|
63
|
+
例えば着目ポイントがいくつかの画面を遷移した先の画面にあるとしましょう。試行錯誤で何度も何度も試すのに毎回画面遷移するの面倒ですよね?
|
64
64
|
|
65
65
|
知らないことを知る試行錯誤は誰でもすごく疲れるものなので、余計なものを排除し、集中して効率を上げることはとても重要です。
|
66
66
|
|
1
やりたいことの調べ方について補足書きました。
test
CHANGED
@@ -35,3 +35,87 @@
|
|
35
35
|
|
36
36
|
|
37
37
|
とすればやりたいことができるでしょう。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
### 追記:やりたいことの調べ方
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
まず重要なのはやりたいことをどうやって実現するのか「想像」します。できる/できないは置いといてどういう感じにしたいのかを「想像」します。
|
46
|
+
|
47
|
+
これは既にやっていますね?以下のようなことです。
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
> ボタンの後ろにEditTextを配置し、別のボタンを押すとEditTextが前に配置されてテキストが編集可能になる
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
これがとても重要です。想像さえできれば実際に1つ1つやってみましょう。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
このとき可能ならば作っているプログラムは触らずに、お試し用のプログラムを別に新規で作り直した方がいいです。
|
60
|
+
|
61
|
+
なぜなら作成中のプログラムには着目したいポイントとは関係ない要素が詰まっていて試行錯誤の邪魔になるからです。
|
62
|
+
|
63
|
+
例えば着目ポイントがいくつかの画面を遷移した先の画面にあるとしましょう。試すの面倒ですよね?
|
64
|
+
|
65
|
+
知らないことを知る試行錯誤は誰でもすごく疲れるものなので、余計なものを排除し、集中して効率を上げることはとても重要です。
|
66
|
+
|
67
|
+
効率を上げられなければ疲れ果てて諦めることになります。
|
68
|
+
|
69
|
+
試行錯誤が終わってから本当のプログラムに組み込みましょう。こうすることでゴミの混入も防げます。
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
試行錯誤できる環境が整ったら自分がやりたいことを実現する方法を探します。
|
74
|
+
|
75
|
+
これにはいくつも方法がありますが、代表的なものをいくつか教えます。
|
76
|
+
|
77
|
+
* インテリセンスで「それっぽい」メソッドを探す。
|
78
|
+
|
79
|
+
Android Studio で Ctrl + Space を押すとメソッドの候補一覧を表示できます。メソッド名の英単語で「それっぽいもの」を探します。
|
80
|
+
|
81
|
+
* [API リファレンス](https://developer.android.com/reference/)で「それっぽい」メソッドを探す。
|
82
|
+
|
83
|
+
[Android Platform APIs](https://developer.android.com/reference/packages) からパッケージを辿って対象のクラスを探してもいいし、右上の検索窓にクラス名を入れて検索してもいいし、そもそも「Android クラス名」でググっても概ねここに来れると思います。
|
84
|
+
|
85
|
+
* やりたいことを直接ググる。
|
86
|
+
|
87
|
+
サンプルを探してそれでどんなメソッドを使っているかを見ても良いです。
|
88
|
+
|
89
|
+
ドンピシャでやりたいことが見つかることはほとんどないので、やりたいことを小さい要素に分解して1つずつ検索しないとヒットしないでしょう。
|
90
|
+
|
91
|
+
ググり方は試行錯誤とそれによる経験則がモノをいいます。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
「それっぽい」ってところが重要です。やりたいことの想像ができていればメソッド名でピンと来ます。
|
96
|
+
|
97
|
+
斜め読みでざっと探せるので時間は掛からないはずです。
|
98
|
+
|
99
|
+
「それっぽい」のが見つかったら実際に書いてみて動きを見ます。
|
100
|
+
|
101
|
+
ピンと来るもの見つからないならそれは最初「想像」の「発想」が悪かったのかもしれません。別の方法を考えます。
|
102
|
+
|
103
|
+
やりたいことを実現する方法は決して1つではないです。いくつものやり方が考えられるのがほとんどです。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
例えば今回のを実現するのに以下の2つの考え方があります。
|
108
|
+
|
109
|
+
* 必要時に EditText を配置して、不要になったら撤去する。
|
110
|
+
|
111
|
+
* 必要時に EditText を表示して、不要になったら非表示にする。
|
112
|
+
|
113
|
+
ちなみにどっちもできます。
|
114
|
+
|
115
|
+
前者なら ViewGroup.addView/removeView を使います。初期レイアウトに配置しません。
|
116
|
+
|
117
|
+
後者なら View.visibility を使います。初期レイアウトに非表示で配置します。
|
118
|
+
|
119
|
+
これは経験則ですが、後者の方が簡単なので後者を紹介しました。別にやりたいことができるなら前者でも構わないと私は思います。
|
120
|
+
|
121
|
+
むしろ勉強時は思いついた方法を全てやってみてその差を比較して実感するなどした方が経験則を増やせますよ。
|