回答編集履歴
4
追記
test
CHANGED
@@ -184,4 +184,4 @@
|
|
184
184
|
|
185
185
|
|
186
186
|
|
187
|
-
本当はこういう丸写しで解決できてしまう回答をすることは、私が他の回答者から邪道だと言われても仕方ないものだということをご理解くださいね。
|
187
|
+
本当はこういう丸写しで解決できてしまう回答をすることは、私が他の回答者から邪道だと言われても仕方ないものだということをご理解くださいね。本来、最初の回答で初心者であっても理解できなければならない内容のはずです。
|
3
丸写しできる回答
test
CHANGED
@@ -91,3 +91,97 @@
|
|
91
91
|
|
92
92
|
|
93
93
|
`button.setOnClickListener`ではエラーにならなかったとのことですが、これはレイアウトXMLファイルにbuttonというIDを付けたコンポーネントが存在していたからではありませんか?
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
---
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
Activityのど真ん中に置いたボタンにbutton2というIDを付けて、このボタンを押したときにSecondActivityに遷移するコードです。なお、Kotlinコードからは1行目のpackage文だけ除いています。
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
```xml
|
106
|
+
|
107
|
+
<?xml version="1.0" encoding="utf-8"?>
|
108
|
+
|
109
|
+
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
110
|
+
|
111
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
112
|
+
|
113
|
+
xmlns:tools="http://schemas.android.com/tools"
|
114
|
+
|
115
|
+
android:layout_width="match_parent"
|
116
|
+
|
117
|
+
android:layout_height="match_parent"
|
118
|
+
|
119
|
+
tools:context=".MainActivity">
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
<Button
|
124
|
+
|
125
|
+
android:id="@+id/button2"
|
126
|
+
|
127
|
+
android:layout_width="wrap_content"
|
128
|
+
|
129
|
+
android:layout_height="wrap_content"
|
130
|
+
|
131
|
+
android:text="Button"
|
132
|
+
|
133
|
+
app:layout_constraintBottom_toBottomOf="parent"
|
134
|
+
|
135
|
+
app:layout_constraintEnd_toEndOf="parent"
|
136
|
+
|
137
|
+
app:layout_constraintStart_toStartOf="parent"
|
138
|
+
|
139
|
+
app:layout_constraintTop_toTopOf="parent" />
|
140
|
+
|
141
|
+
</android.support.constraint.ConstraintLayout>
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
```kotlin
|
148
|
+
|
149
|
+
import android.content.Intent
|
150
|
+
|
151
|
+
import android.os.Bundle
|
152
|
+
|
153
|
+
import android.support.v7.app.AppCompatActivity
|
154
|
+
|
155
|
+
import kotlinx.android.synthetic.main.activity_main.*
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
class MainActivity : AppCompatActivity() {
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
164
|
+
|
165
|
+
super.onCreate(savedInstanceState)
|
166
|
+
|
167
|
+
setContentView(R.layout.activity_main)
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
button2.setOnClickListener {
|
172
|
+
|
173
|
+
val intent = Intent(this, SecondActivity::class.java)
|
174
|
+
|
175
|
+
startActivity(intent)
|
176
|
+
|
177
|
+
}
|
178
|
+
|
179
|
+
}
|
180
|
+
|
181
|
+
}
|
182
|
+
|
183
|
+
```
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
本当はこういう丸写しで解決できてしまう回答をすることは、私が他の回答者から邪道だと言われても仕方ないものだということをご理解くださいね。
|
2
追加
test
CHANGED
@@ -58,6 +58,14 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
+
setOnClickListenerはButtonクラスに属するメソッドです。ですから、変数がButton型でなければ使えません。上記のKotlinコードでは、buttonという変数がButton型として扱われているためにsetOnClickListenerを用いることができます。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
---
|
66
|
+
|
67
|
+
|
68
|
+
|
61
69
|
ここからが主題ですが、エラーになっているコードを見ると
|
62
70
|
|
63
71
|
|
1
修正
test
CHANGED
@@ -78,7 +78,7 @@
|
|
78
78
|
|
79
79
|
```
|
80
80
|
|
81
|
-
のような記述をされているのだろうと思います(ボタンのラベルとするため?)。しかし、
|
81
|
+
のような記述をされているのだろうと思います(ボタンのラベルとするため?)。しかし、このような状況で前述のimport文を記述すると、このstrings.xmlの情報を参照しようとしてしまうため、コンパイラーはbutton2という名前をe.masaya.myapplication.R.string.button2という完全修飾名の変数として扱い、Buttonコンポーネントとして取り扱ってくれません(R.xxx.yyyの形式で表現されるのは全てint型変数です)。そのためにエラーとなっています。
|
82
82
|
|
83
83
|
|
84
84
|
|