回答編集履歴

1

修正回答

2020/05/19 13:12

投稿

keicha_hrs
keicha_hrs

スコア6768

test CHANGED
@@ -27,3 +27,109 @@
27
27
 
28
28
 
29
29
  とする必要があるのではないでしょうか。
30
+
31
+
32
+
33
+ ---
34
+
35
+
36
+
37
+ あー、これコードで作成したFrameLayoutを描画しているのですね。すると、レイアウトXMLに配置したTextViewは画面上のどこにも存在しませんから、これをfindViewById()で取得することもできません。これは設計の方向性を改めないと解決できないでしょう。
38
+
39
+
40
+
41
+ 一つの方法としてですが、次のように修正してみてはどうでしょうか。これだと、レイアウトXMLに配置したTextViewを扱えるので、文字の描画もできるでしょう。
42
+
43
+
44
+
45
+ activity_main.xml (android:idの追加)
46
+
47
+ ```xml
48
+
49
+ <?xml version="1.0" encoding="utf-8"?>
50
+
51
+ <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
52
+
53
+ xmlns:app="http://schemas.android.com/apk/res-auto"
54
+
55
+ xmlns:tools="http://schemas.android.com/tools"
56
+
57
+ android:id="@+id/root"
58
+
59
+ android:layout_width="match_parent"
60
+
61
+ android:layout_height="match_parent"
62
+
63
+ tools:context=".MainActivity">
64
+
65
+
66
+
67
+ (以下略)
68
+
69
+ ```
70
+
71
+
72
+
73
+ MainActivity.java
74
+
75
+ ```java
76
+
77
+ public class MainActivity extends AppCompatActivity implements Runnable, SensorEventListener {
78
+
79
+
80
+
81
+ //FrameLayout framelayout; // やめる
82
+
83
+ ConstraintLayout layout; // 代わりに新設
84
+
85
+
86
+
87
+ @Override
88
+
89
+ protected void onCreate(Bundle savedInstanceState) {
90
+
91
+ super.onCreate(savedInstanceState);
92
+
93
+ getWindow().addFlags(
94
+
95
+ WindowManager.LayoutParams.FLAG_FULLSCREEN);
96
+
97
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
98
+
99
+
100
+
101
+ //framelayout = new FrameLayout(this);
102
+
103
+ //framelayout.setBackgroundColor(Color.GREEN);
104
+
105
+ //setContentView(framelayout);
106
+
107
+
108
+
109
+ // 代わりに追加する処理
110
+
111
+ setContentView(R.layout.activity_main);
112
+
113
+ layout = findViewById(R.id.root);
114
+
115
+ layout.setBackgroundColor(Color.GREEN);
116
+
117
+ textView1 = findViewById(R.id.text_view1);
118
+
119
+
120
+
121
+ (中略)
122
+
123
+
124
+
125
+ //framelayout.addView(hole);
126
+
127
+ //framelayout.addView(ball);
128
+
129
+ layout.addView(hole);
130
+
131
+ layout.addView(ball);
132
+
133
+ }
134
+
135
+ ```