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

質問編集履歴

4

図の修正

2019/01/28 00:36

投稿

Tsukasa7613
Tsukasa7613

スコア10

title CHANGED
File without changes
body CHANGED
@@ -12,7 +12,7 @@
12
12
  このようなレイアウトを複数動的追加するときの実装方法
13
13
  をご教授願います。
14
14
 
15
- ![イメージ説明](0b504f51d93d95d703af510763ad6cc7.png)
15
+ ![イメージ説明](f93668847597a0a052931eeb5037300e.png)
16
16
 
17
17
  -------------------------------------------------
18
18
  追記

3

タイトルの変更

2019/01/28 00:36

投稿

Tsukasa7613
Tsukasa7613

スコア10

title CHANGED
@@ -1,1 +1,1 @@
1
- LinearLayoutを入れ子にしたxmlinflateで取得した時の処理
1
+ 入れ子にしたLinearLayout内のviewのIDやtextを取得・変更した
body CHANGED
@@ -4,7 +4,7 @@
4
4
  動的にレイアウトを複数個 追加する必要があったため、LayoutInflater を使ってxmlファイルをレイアウトに追加する処理を書きました。
5
5
  追加するxmlには 枠になるLinearLayout 内にLinearLayoutを複数配置してlayout_weight等でレイアウトを調整し、その中にボタンやテキストを配置しました。(下記にイメージ画像を添付します)
6
6
 
7
- その結果、最深部にある TextView や ImageView の androidl:ID の動的な変更や、idを得して setText が出来なくなってしまいました。(自分で学習した結果、getChildAt()ではLinearLayout内のLinearLayoutの子要素を取得できなかったためだと考えました。)
7
+ その結果、最深部にある TextView や ImageView の androidl:ID の動的な変更や、idを得して setText が出来なくなってしまいました。(自分で学習した結果、getChildAt()ではLinearLayout内のLinearLayoutの子要素を取得できなかったためだと考えました。)
8
8
 
9
9
  入れ子ではいけないのかと思い、Inflateを複数繰り返して入れ子にしていたLinearLayoutを表示してみましたが、layout_weight や layout_heightなどがなぜか無視されてしまいました。
10
10
 

2

ソースコードの追記・文法の修正

2019/01/25 02:59

投稿

Tsukasa7613
Tsukasa7613

スコア10

title CHANGED
@@ -1,1 +1,1 @@
1
- LinearLayoutを入れ子にしたxmlinflateで取得した時の処理
1
+ LinearLayoutを入れ子にしたxmlinflateで取得した時の処理
body CHANGED
File without changes

1

ソースコードの追記

2019/01/25 00:56

投稿

Tsukasa7613
Tsukasa7613

スコア10

title CHANGED
File without changes
body CHANGED
@@ -12,4 +12,38 @@
12
12
  このようなレイアウトを複数動的追加するときの実装方法
13
13
  をご教授願います。
14
14
 
15
- ![イメージ説明](0b504f51d93d95d703af510763ad6cc7.png)
15
+ ![イメージ説明](0b504f51d93d95d703af510763ad6cc7.png)
16
+
17
+ -------------------------------------------------
18
+ 追記
19
+ ------------------ソースコード---------------------------
20
+   @Override
21
+ protected void onResume() {
22
+ super.onResume();
23
+
24
+      // inflateでsub.xml(上記のxml)を取得
25
+ LayoutInflater inflater = LayoutInflater.from(this);
26
+ LinearLayout addLayout = (LinearLayout) inflater.inflate(R.layout.sub0, null);
27
+
28
+     // addViewで追加
29
+ LinearLayout linearLayout = findViewById(R.id.food_lay);
30
+ linearLayout.addView(addLayout);
31
+
32
+ //画像出力処理?
33
+ ImageView imageView2 = findViewById(R.id.image);
34
+ imageView2.setImageResource(R.drawable.drink_milk_pack);
35
+
36
+ //ボタンの動作
37
+ //Button btclick = findViewById(R.id.btn_mainasu);
38
+ //ClickListener listener = new ClickListener();
39
+ //btclick.setOnClickListener(listener);
40
+
41
+
42
+
43
+ }
44
+
45
+
46
+
47
+ onResumeに記述し、別画面に遷移後戻ってきたときにxmlが動的に追加されるように処理しています。
48
+ 追加時にはボタンが動作しますが2個目以降の追加時に動かなくなってしまいました(IDが重複するため?)
49
+ そのため動的なIDの変更やリスナクラス・画像の指定が必要なのかなと考えたのですが方法がわかりませんでした。