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

回答編集履歴

3

レイアウトの崩れを直した。

2019/01/06 00:25

投稿

toydev
toydev

スコア297

answer CHANGED
@@ -54,6 +54,7 @@
54
54
  例えば今回のを実現するのに以下の2つの考え方があります。
55
55
  * 必要時に EditText を配置して、不要になったら撤去する。
56
56
  * 必要時に EditText を表示して、不要になったら非表示にする。
57
+
57
58
  ちなみにどっちもできます。
58
59
  前者なら ViewGroup.addView/removeView を使います。初期レイアウトに配置しません。
59
60
  後者なら View.visibility を使います。初期レイアウトに非表示で配置します。

2

気になった点を微修正。

2019/01/06 00:25

投稿

toydev
toydev

スコア297

answer CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  このとき可能ならば作っているプログラムは触らずに、お試し用のプログラムを別に新規で作り直した方がいいです。
31
31
  なぜなら作成中のプログラムには着目したいポイントとは関係ない要素が詰まっていて試行錯誤の邪魔になるからです。
32
- 例えば着目ポイントがいくつかの画面を遷移した先の画面にあるとしましょう。試すの面倒ですよね?
32
+ 例えば着目ポイントがいくつかの画面を遷移した先の画面にあるとしましょう。試行錯誤で何度も何度も試すのに毎回画遷移するの面倒ですよね?
33
33
  知らないことを知る試行錯誤は誰でもすごく疲れるものなので、余計なものを排除し、集中して効率を上げることはとても重要です。
34
34
  効率を上げられなければ疲れ果てて諦めることになります。
35
35
  試行錯誤が終わってから本当のプログラムに組み込みましょう。こうすることでゴミの混入も防げます。

1

やりたいことの調べ方について補足書きました。

2019/01/06 00:25

投稿

toydev
toydev

スコア297

answer CHANGED
@@ -16,4 +16,46 @@
16
16
  - ボタン名称変更 Button に EditText の表示/非表示を切り替えるイベントを割り当てる。
17
17
  - EditText のテキスト変更イベイトでテキストの変更を拾って Button のテキストを書き換える。
18
18
 
19
- とすればやりたいことができるでしょう。
19
+ とすればやりたいことができるでしょう。
20
+
21
+ ### 追記:やりたいことの調べ方
22
+
23
+ まず重要なのはやりたいことをどうやって実現するのか「想像」します。できる/できないは置いといてどういう感じにしたいのかを「想像」します。
24
+ これは既にやっていますね?以下のようなことです。
25
+
26
+ > ボタンの後ろにEditTextを配置し、別のボタンを押すとEditTextが前に配置されてテキストが編集可能になる
27
+
28
+ これがとても重要です。想像さえできれば実際に1つ1つやってみましょう。
29
+
30
+ このとき可能ならば作っているプログラムは触らずに、お試し用のプログラムを別に新規で作り直した方がいいです。
31
+ なぜなら作成中のプログラムには着目したいポイントとは関係ない要素が詰まっていて試行錯誤の邪魔になるからです。
32
+ 例えば着目ポイントがいくつかの画面を遷移した先の画面にあるとしましょう。試すの面倒ですよね?
33
+ 知らないことを知る試行錯誤は誰でもすごく疲れるものなので、余計なものを排除し、集中して効率を上げることはとても重要です。
34
+ 効率を上げられなければ疲れ果てて諦めることになります。
35
+ 試行錯誤が終わってから本当のプログラムに組み込みましょう。こうすることでゴミの混入も防げます。
36
+
37
+ 試行錯誤できる環境が整ったら自分がやりたいことを実現する方法を探します。
38
+ これにはいくつも方法がありますが、代表的なものをいくつか教えます。
39
+ * インテリセンスで「それっぽい」メソッドを探す。
40
+ Android Studio で Ctrl + Space を押すとメソッドの候補一覧を表示できます。メソッド名の英単語で「それっぽいもの」を探します。
41
+ * [API リファレンス](https://developer.android.com/reference/)で「それっぽい」メソッドを探す。
42
+ [Android Platform APIs](https://developer.android.com/reference/packages) からパッケージを辿って対象のクラスを探してもいいし、右上の検索窓にクラス名を入れて検索してもいいし、そもそも「Android クラス名」でググっても概ねここに来れると思います。
43
+ * やりたいことを直接ググる。
44
+ サンプルを探してそれでどんなメソッドを使っているかを見ても良いです。
45
+ ドンピシャでやりたいことが見つかることはほとんどないので、やりたいことを小さい要素に分解して1つずつ検索しないとヒットしないでしょう。
46
+ ググり方は試行錯誤とそれによる経験則がモノをいいます。
47
+
48
+ 「それっぽい」ってところが重要です。やりたいことの想像ができていればメソッド名でピンと来ます。
49
+ 斜め読みでざっと探せるので時間は掛からないはずです。
50
+ 「それっぽい」のが見つかったら実際に書いてみて動きを見ます。
51
+ ピンと来るもの見つからないならそれは最初「想像」の「発想」が悪かったのかもしれません。別の方法を考えます。
52
+ やりたいことを実現する方法は決して1つではないです。いくつものやり方が考えられるのがほとんどです。
53
+
54
+ 例えば今回のを実現するのに以下の2つの考え方があります。
55
+ * 必要時に EditText を配置して、不要になったら撤去する。
56
+ * 必要時に EditText を表示して、不要になったら非表示にする。
57
+ ちなみにどっちもできます。
58
+ 前者なら ViewGroup.addView/removeView を使います。初期レイアウトに配置しません。
59
+ 後者なら View.visibility を使います。初期レイアウトに非表示で配置します。
60
+ これは経験則ですが、後者の方が簡単なので後者を紹介しました。別にやりたいことができるなら前者でも構わないと私は思います。
61
+ むしろ勉強時は思いついた方法を全てやってみてその差を比較して実感するなどした方が経験則を増やせますよ。