Я новичок в программировании. У меня появляется сообщение об ошибке при запуске приложения, и я не знаю, что делать с кодом. Может кто-нибудь помочь мне, пожалуйста.
Вот мой код:
Активность:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val items = ArrayList<String>()
items.add("Test1")
items.add("Test2")
items.add("Test3")
listview1.adapter = Adapter1(this, items)
val transaction1 = supportFragmentManager.beginTransaction()
fragment1Button1.setOnClickListener{
transaction1.replace(R.id.fragment1Platz,Fragment1())
transaction1.commit()
}
}
}
Фрагмент:
class Fragment1 : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_fragment1, container, false)
}
}
Адаптер:
class Adapter1 (context : Context, items : ArrayList<String>) : BaseAdapter() {
private val context: Context = context
private val items: ArrayList<String> = items
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val listeneintrag = LayoutInflater.from(context).inflate(R.layout.adapter1_layout,parent, false)
listeneintrag.findViewById<TextView>(R.id.adapter_textfeld1).text = items.get(position)
return listeneintrag
}
override fun getItem(position: Int): String {
return items.get(position)
}
override fun getItemId(position: Int): Long {
return position.toLong()
}
override fun getCount(): Int {
return items.size
}
}
Ошибка трассировки стека:
2020-02-01 13:37 : 17,972 10729-10729 /? E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной Процесс: strauss2002.yannick.fragmentetest, PID: 10729 java .lang.RuntimeException: Невозможно запустить действие ComponentInfo {strauss2002.yannick.fragmentetest / strauss2002.yannick.fragmentetest.MainActivity} * * .lang.IllegalStateException: listview1 не должен иметь значение null в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2778) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2856) в android .app.ActivityThread.-wrap11 (Неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1589) в android .os.Handler.dispatchMessage (Обработчик. java: 106) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6494) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 438) в com. android .internal.os.ZygoteInit .main (ZygoteInit. java: 807) Причина: java .lang.IllegalStateEx ception: listview1 не должен быть нулевым в strauss2002.yannick.fragmentetest.MainActivity.onCreate (MainActivity.kt: 29) в android .app.Activity.performCreate (Activity. java: 7009) в android .app. Activity.performCreate (Activity. java: 7000) в android .app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1214) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2731) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2856) в android .app.ActivityThread.-wrap11 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread . java: 1589) в android .os.Handler.dispatchMessage (Обработчик. java: 106) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6494) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run ( RuntimeInit. java: 438) на ком. android .internal.os.ZygoteInit.main (ZygoteInit. java: 807)
Вот мое обновление Основная активность:
class MainActivity: AppCompatActivity () {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val listview1=findViewById<ListView>(R.id.listview1)
val items = ArrayList<String>()
items.add("Test1")
items.add("Test2")
items.add("Test3")
listview1.adapter = Adapter1(this, items)
val transaction1 = supportFragmentManager.beginTransaction()
fragment1Button1.setOnClickListener{
transaction1.replace(R.id.fragment1Platz,Fragment1())
transaction1.commit()
}
}
}
А вот новое сообщение об ошибке: 2020-02-02 11:15: 15.935 12764-12764 / strauss2002.yannick.fragmentetest E / AndroidRuntime: ОСНОВНОЕ ИСКЛЮЧЕНИЕ: основной Процесс: straus s2002.yannick.fragmentetest, PID: 12764 java .lang.RuntimeException: Невозможно запустить действие ComponentInfo {strauss2002.yannick /ragmentest strauss2002.yannick.fragmentetest.MainActivity}: java .lang.IllegalStateException: listview1 не должен иметь значение null в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2778) в android .app.ActivityThread. handleLaunchActivity (ActivityThread. java: 2856) в android .app.ActivityThread.-wrap11 (неизвестный источник: 0) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1589) в android .os.Handler.dispatchMessage (Обработчик. java: 106) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main ( ActivityThread. java: 6494) в java .lang.reflect.Met hod.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 438) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 807) Причина: java .lang.IllegalStateException: listview1 не должен быть нулевым в strauss2002.yannick.fragmentetest.MainActivity.onCreate (MainActivity.kt: 28) в android .app.Activity.performCreate (Activity . java: 7009) в android .app.Activity.performCreate (Activity. java: 7000) в android .app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1214) в android .app.ActivityThread.performLaunchActivity (ActivityThread . java: 2731) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2856) в android .app.ActivityThread.-wrap11 (Неизвестный источник: 0) в android .app. ActivityThread $ H.handleMessage (ActivityThread. java: 1589) в android .os.Handler.dispatchMessage (Обработчик. java: 106) в android .os.Looper.l oop (Looper. java: 164) в android .app.ActivityThread.main (ActivityThread. java: 6494) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os .RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 438) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 807)
Вот xml из Activity_main:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/fragment1Platz"
android:layout_width="410dp"
android:layout_height="495dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent">
</FrameLayout>
<Button
android:id="@+id/fragment1Button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:text="Öffne Fragment 1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.529"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Вот xml фрагмента_фрагмента1:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Fragment1">
<!-- TODO: Update blank fragment layout -->
<ListView
android:id="@+id/listview1"
android:layout_width="match_parent"
android:layout_height="322dp"/>
</FrameLayout>
Вот xml адаптера1_layout:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/adapter_textfeld1"
android:layout_width="137dp"
android:layout_height="53dp"
android:layout_marginTop="128dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>