0

Error :

In total, there are three fragments. The error occurs after going from my third fragment to my first fragment. When going from the second fragment to the fist fragment, my app does not crash.

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.direct.indianpeople, PID: 20204
    java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter selectedItemView
        at com.example.senthil.kotlin_tablayout.Fragment.nameFrag$onViewCreated$1.onItemSelected(Unknown Source:2)
        at android.widget.AdapterView.fireOnSelected(AdapterView.java:944)
        at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:933)
        at android.widget.AdapterView.selectionChanged(AdapterView.java:922)
        at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:1105)
        at android.widget.AdapterView.handleDataChanged(AdapterView.java:1081)
        at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:191)
        at android.widget.Spinner.onMeasure(Spinner.java:602)
        at androidx.appcompat.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:428)
        at android.view.View.measure(View.java:23355)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23355)
        at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1326)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at android.widget.ScrollView.onMeasure(ScrollView.java:355)
        at android.view.View.measure(View.java:23355)
        at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1638)
        at android.view.View.measure(View.java:23355)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23355)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at com.android.internal.policy.DecorView.onMeasure(DecorView.java:717)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2919)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1749)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2042)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1637)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7797)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1172)
        at android.view.Choreographer.doCallbacks(Choreographer.java:984)
        at android.view.Choreographer.doFrame(Choreographer.java:809)
E/AndroidRuntime:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1158)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6898)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.direct.indianpeople, PID: 20204
    java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter selectedItemView
        at com.example.senthil.kotlin_tablayout.Fragment.nameFrag$onViewCreated$1.onItemSelected(Unknown Source:2)
        at android.widget.AdapterView.fireOnSelected(AdapterView.java:944)
        at android.widget.AdapterView.dispatchOnItemSelected(AdapterView.java:933)
        at android.widget.AdapterView.selectionChanged(AdapterView.java:922)
        at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:1105)
        at android.widget.AdapterView.handleDataChanged(AdapterView.java:1081)
        at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:191)
        at android.widget.Spinner.onMeasure(Spinner.java:602)
        at androidx.appcompat.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:428)
        at android.view.View.measure(View.java:23355)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23355)
        at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1326)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at android.widget.ScrollView.onMeasure(ScrollView.java:355)
        at android.view.View.measure(View.java:23355)
        at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1638)
        at android.view.View.measure(View.java:23355)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23355)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6758)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
        at com.android.internal.policy.DecorView.onMeasure(DecorView.java:717)
        at android.view.View.measure(View.java:23355)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2919)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1749)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2042)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1637)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7797)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1172)
        at android.view.Choreographer.doCallbacks(Choreographer.java:984)
        at android.view.Choreographer.doFrame(Choreographer.java:809)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1158)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6898)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Code :

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

        for (state in 0..user.StateName_.size-1){
            state_name.add(user.StateName_[state])
            state_id.add(user.StateId_[state])
        }


        spinnerTemp.adapter = ArrayAdapter(this.context!!, android.R.layout.simple_spinner_dropdown_item,state_name)


        spinnerTemp.setOnItemSelectedListener(object : OnItemSelectedListener {
            override fun onItemSelected(parentView: AdapterView<*>?, selectedItemView: View, position: Int, id: Long){
                    city_name.clear()
                    city_state_id.clear()
                    city_id.clear()
                    for (state in 0..user.CityName_.size - 1) {
                        city_state_id.add(user.CityStateId_[state])
                        if (state_id[position] == city_state_id[state]) {
                            city_name.add(user.CityName_[state])
                            city_id.add(user.CityId_[state])
                        }
                    }
                    spinnerTemp2.adapter = ArrayAdapter(
                        this@nameFrag.context!!,
                        android.R.layout.simple_spinner_dropdown_item,
                        city_name
                    )
            }
            override fun onNothingSelected(parentView: AdapterView<*>?) {
                Toast.makeText(this@nameFrag.context,"${city_id}",Toast.LENGTH_SHORT).show()
            }
        })
        spinnerTemp2.setOnItemSelectedListener(object : OnItemSelectedListener {
            override fun onItemSelected(parentView: AdapterView<*>?, selectedItemView: View, position: Int, id: Long){

            }
            override fun onNothingSelected(parentView: AdapterView<*>?) {

            }
        } )

        get_name.addTextChangedListener(object : TextWatcher {

            override fun afterTextChanged(s: Editable) {}

            override fun beforeTextChanged(s: CharSequence, start: Int,
                                           count: Int, after: Int) {
            }

            override fun onTextChanged(s: CharSequence, start: Int,
                                       before: Int, count: Int) {
                if(check_pass(s.toString()) == true){
                    button14.setOnClickListener {
                        val intent = Intent(this@nameFrag.context, Profile2::class.java)
                        startActivity(intent)
                    }
                }
                else if(check_pass(s.toString()) == false)
                    button14.setOnClickListener{
                        Toast.makeText(activity?.applicationContext,"No User Found", Toast.LENGTH_LONG).show()
                    }

            }
        })
    }

Its a fun bit of code that I just wrote, and I am new to android or programming in general, so I cannot figure out what's wrong.

Any help is appreciated.

I don't know what's causing it.

Derick
  • 35,169
  • 5
  • 76
  • 99
Kendade
  • 15
  • 3
  • Does this answer your question? [What is a NullPointerException, and how do I fix it?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Ricardo A. Nov 28 '19 at 12:24
  • nope it does not. – Kendade Nov 28 '19 at 12:29
  • @Artem That works. Wow, Was it that stupid of a question? What exactly was causing it though? – Kendade Nov 28 '19 at 12:40
  • Asking a question to gain knowledge is never stupid :) The problem was that setOnItemSelectedListener expected it`s selectedItemView as the nullable type, but I don`t understand why the compiler didn`t care. PS I made a distinct comment. – Artem Nov 28 '19 at 12:43

1 Answers1

7

Try using "selectedItemView: View?" instead of "selectedItemView: View" in your arguments in onItemSelected callbacks and see what happens. The methods expect selectedItemView to have nullable type.

Artem
  • 354
  • 1
  • 4