Hallo bin neu hier und habe eine Anfänger Frage.
Ich habe versucht dieses https://www.youtube.com/watch?v=RMbMoyDojZs Tutorial zu machen und es in Kotlin zu übertragen da es in Java geschrieben ist und ich aber Kotlin lernen möchte.
Es geht dort darum das man eine eigene View baut aus zwei LinearLayouts, ImageViews und einer TextView die dann auf einfache weise mehrfach wiederverwendet werden kann.
Das ist die "infomation_item.xml"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".InfomationItem">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<ImageView
android:id="@+id/ivIcon"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_weight="0"
android:src="@mipmap/rkdesign_info_comic_icon" />
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
tools:text="Title"
android:textSize="20sp" />
<ImageView
android:id="@+id/ivArrow"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="right"
android:layout_weight="0"
android:src="@mipmap/rkdesign_simple_arrow" />
</LinearLayout>
<TextView
android:id="@+id/tvDiscription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
tools:text="Hier steht der Beschreibungstext......" />
</LinearLayout>
Alles anzeigen
Und das die dazugehörige "InfomationItem.kt"
package com.example.android.eigeneview
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Layout
import android.util.AttributeSet
import android.view.View
import android.widget.LinearLayout
public class InfomationItem(context: Context?) : LinearLayout(context) {
init {
inflate(getContext(),R.layout.infomation_item, this)
}
}
Alles anzeigen
Ich habe leider noch nicht so richtig bzw. garnicht verstanden wie das mit den Construktoren und inflaten funktioniert. Die Imports rühren noch von den fehlversuchen.
hier noch die Main und die main.xml
package com.example.android.eigeneview
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
Alles anzeigen
<?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">
<com.example.android.eigeneview.InfomationItem
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"></com.example.android.eigeneview.InfomationItem>
</androidx.constraintlayout.widget.ConstraintLayout>
Alles anzeigen
Kann mir jemand erklären wie man so ein InfomationItem Element vernünftig einbindet und in der MainActivity sichtbar macht?
.