前提・実現したいこと
dialogで配置したeditTextの値を取得しようとしたときにnullpointexceptionが発生してしまいました。どのように解決すればいいですか?
コード中のコメントアウトしているif文は、コメントアウトを外すと機能し、Logが出力されました。
載せているコードは省略しています。
発生している問題・エラーメッセージ
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.widget.EditText.toString()' on a null object reference
// kotlin class SetDialog: DialogFragment(){ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val builder = AlertDialog.Builder(getActivity()) val inflater = getActivity().getLayoutInflater() builder.setView(inflater.inflate(R.layout.s_dialog, null)) .setPositiveButton("Set") { dialog, id -> // if(tEditText==null){ // Log.d("tEditText"," is null") // }else{ tEditText.text.toString() //ここでnullエラーがでました // } } return builder.create() } } class MainActivity:AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) settingButton.setOnClickListener { SetDialog().show(supportFragmentManager, null) } } }
xml
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"> 3 <EditText 4 android:id="@+id/tEditText" 5 android:inputType="text" /> 6</LinearLayout>
回答1件
あなたの回答
tips
プレビュー