Я делаю приложение для Android в Котлине, которое должно представлять мое резюме.Я сделал это с учетом фрагментов и переработчика.Первая вкладка в tabLayout должна содержать мою биографию, вторая должна иметь образование и третий опыт работы.Также вторая и третья вкладка должны быть выполнены с видом переработчика.Проблема состоит в том, что одно из представлений рециркулятора возвращает ноль, где находится контекст.Образование и опыт работы работают одинаково.
Я пробовал разные типы контекста и не нашел такой работы.Также попытался переместить layoutManager и DefaultItemAnimator в MainActivity, но это не помогло (я использовал «this» в качестве контекста, когда переместил его в MainActivity).
Github link: https://github.com/CookieTheMonsta/MyCV
class Education: Fragment() {
companion object {
fun newInstance(): Education {
return Education()
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.education,container,false)
educationDisplay.layoutManager = LinearLayoutManager(container?.context,RecyclerView.VERTICAL,false)
educationDisplay.itemAnimator = DefaultItemAnimator()
educationDisplay.addItemDecoration(DividerItemDecoration(container?.context, RecyclerView.VERTICAL))
return view
}
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setUpUi()
}
private fun setUpUi() {
viewPager.adapter = FragmentAdapter(supportFragmentManager)
tabLayout.setupWithViewPager(viewPager)
displayData()
}
fun displayData() {
/*educationDisplay.adapter = EducationAdapter(EducationRepository.educations)
workexpDisplay.adapter = WorkExperienceAdapter(WorkRepository.works)*/
}
}
Список ошибок из Logcat
2019-04-10 15:57:44.260 9004-9004/hr.ferit.sumigaborna.mycv E/AndroidRuntime: FATAL EXCEPTION: main
Process: hr.ferit.sumigaborna.mycv, PID: 9004
java.lang.RuntimeException: Unable to start activity ComponentInfo{hr.ferit.sumigaborna.mycv/hr.ferit.sumigaborna.mycv.MainActivity}: java.lang.IllegalStateException: educationDisplay must not be null
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
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: java.lang.IllegalStateException: educationDisplay must not be null
at hr.ferit.sumigaborna.mycv.MainActivity.displayData(MainActivity.kt:39)
at hr.ferit.sumigaborna.mycv.MainActivity.setUpUi(MainActivity.kt:33)
at hr.ferit.sumigaborna.mycv.MainActivity.onCreate(MainActivity.kt:25)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
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)
Приложение должно иметь 3 вкладки, во-первых, это биография, которую вы можете игнорировать, поскольку она не доставляет проблем.На вкладках «Образование» и «Опыт работы» должны отображаться сведения о переработчике с моей информацией.Но они не потому, что