前提・実現したいこと
editTextが空の状態でボタンがクリックされた時にエラーメッセージを表示させたいのですが、以下のようなエラーが発生しており、解消できません。
どなたかご教授いただけますでしょうか。
発生している問題・エラーメッセージ
Caused by: kotlin.TypeCastException: null cannot be cast to non-null type android.widget.Button at com.example.calcapp.MainActivity.onCreate(MainActivity.kt:35)
該当のソースコード
class MainActivity : AppCompatActivity(), View.OnClickListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setContentView(R.layout.editor_layout) val btn1 = this.findViewById(R.id.button1) as Button //35行目 btn1?.let{it ->it.setOnClickListener(this)} val btn2 = this.findViewById(R.id.button2) as Button btn2?.let{it ->it.setOnClickListener(this)} val btn3 = this.findViewById(R.id.button3) as Button btn3?.let{it ->it.setOnClickListener(this)} val btn4 = this.findViewById(R.id.button4) as Button btn4?.let{it ->it.setOnClickListener(this)} } //onClickメソッドでSecondActivityに遷移させる override fun onClick(v: View?) { //Intentのインスタンスを生成 //コンストラクタの第一引数はcontextなのでActivity自身,第2引数は遷移させたいActivityのクラスを指定 val intent = Intent(this, SecondActivity::class.java) //EditTextの文字列を取得し、数値に変換 val A = editText1.text.toString().toDouble() val B = editText2.text.toString().toDouble() if (A.toString() == ""|| B.toString() == ""){ makeText(this, "数値が入力されていません!!", Toast.LENGTH_SHORT).show()} else { when (v?.id) { R.id.button1 -> intent.putExtra("VALUE", (A + B)) R.id.button2 -> intent.putExtra("VALUE", (A - B)) R.id.button3 -> intent.putExtra("VALUE", (A * B)) R.id.button4 -> intent.putExtra("VALUE", (A / B)) } } //生成したIntentを引数にしてstartActivityメソッドを呼び出すことで遷移 startActivity(intent) } } ``` よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/22 01:07