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

回答編集履歴

2

コメントの質問に対しての答えを追記

2015/08/09 10:21

投稿

shiolier
shiolier

スコア1156

answer CHANGED
@@ -24,4 +24,27 @@
24
24
  if ("".equals(missionStr)) {
25
25
 
26
26
  intent.putExtra(EXTRA_MISSION, missionStr);
27
- ```
27
+ ```
28
+
29
+
30
+
31
+ ---
32
+
33
+ ---
34
+
35
+ **Activityの遷移には、必ずIntentが必要なのか?**
36
+ という質問に関してですが、答えは**YES**です。
37
+
38
+ 1つの画面 = 1つのActivity
39
+ というようにしている場合、必ず`Intent`を使って遷移させます。
40
+ Intentを使いたくないという場合は、
41
+ 1つの画面 = 1つのActivity
42
+ という設計を見直す必要があるかと思います。
43
+
44
+ 方法としては、
45
+ `Fragment`を使う
46
+ `Activity#setContentView`を使う
47
+ などがあります。
48
+ ただ、前者はいいですが、後者はおすすめしません。ソースコードがぐちゃぐちゃになったり等、あまり良いことがないので。
49
+
50
+ どちらにしろ、ソースコードは`Intent`を使うより遥か複雑になります。

1

追加

2015/08/09 10:21

投稿

shiolier
shiolier

スコア1156

answer CHANGED
@@ -13,11 +13,15 @@
13
13
  ```Java
14
14
  String mission = mission_button.getText().toString().trim();
15
15
  // AND
16
+ if ("".equals(mission)) {
17
+ // AND
16
18
  intent.putExtra(EXTRA_MISSION, mission);
17
19
  ```
18
20
 
19
21
  ```Java
20
22
  String missionStr = mission_button.getText().toString().trim();
21
23
 
24
+ if ("".equals(missionStr)) {
25
+
22
26
  intent.putExtra(EXTRA_MISSION, missionStr);
23
27
  ```