Kotlin中带有片段的常量数组的问题

时间:2019-06-06 16:16:19

标签: android kotlin

我是Kotlin的新手,我创建了一个常量数组以用于片段内部的微调器。当我尝试运行代码时,应用程序崩溃。我试图找到一种解决方案,但是没有找到。 真正奇怪的部分是,昨天我工作时,它工作得很好,今天崩溃了。

这是我的片段:

    class PersonalDetailsFragment : Fragment() {

    private lateinit var listener: OnChangeFragmentListener

    override fun onAttach(context: Context?) {
        super.onAttach(context)

        listener = getListenerOrThrowException(OnChangeFragmentListener::class.java)
    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // Inflate the layout for this fragment
        val v = inflater.inflate(R.layout.fragment_personal_deatails, container, false)



        v.spinnerAge.adapter = ArrayAdapter<Int>(context, android.R.layout.simple_list_item_1, LIST_AGE)



        v.btnGoDetails.setOnClickListener { listener.changeFragment() }



        return v
    }

这是我的Constant课:

    class Constant {

    companion object {

        @JvmField val LIST_AGE = getAgeList()

        private fun getAgeList(): Array<Int?> {
            val array = arrayOfNulls<Int>(83)
            for (i in array.indices){

                    var age = i + 17
                    array[i] = age

            }

            return  array

        }
    }

错误日志:

    2019-06-06 19:02:53.732 18331-18331/com.eldareini.kotlin.meet4match 
    E/tlin.meet4matc: No package ID 7f found for ID 0x7f0d0044.
    2019-06-06 19:02:53.732 18331-18331/com.eldareini.kotlin.meet4match 
    D/AndroidRuntime: Shutting down VM
    2019-06-06 19:02:53.736 18331-18331/com.eldareini.kotlin.meet4match E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.eldareini.kotlin.meet4match, PID: 18331
    java.lang.ExceptionInInitializerError
        at com.eldareini.kotlin.meet4match.signup.PersonalDetailsFragment.onCreateView(PersonalDetailsFragment.kt:57)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
        at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
        at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
        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:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x7f0d0044
        at android.content.res.Resources.getText(Resources.java:348)
        at android.content.res.Resources.getString(Resources.java:441)
        at com.eldareini.kotlin.meet4match.Constant.<clinit>(Constant.kt:69)
        at com.eldareini.kotlin.meet4match.signup.PersonalDetailsFragment.onCreateView(PersonalDetailsFragment.kt:57) 
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:2439) 
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460) 
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802) 
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625) 
        at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411) 
        at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366) 
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273) 
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733) 
        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:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

0 个答案:

没有答案