Hallo zusammen,
ich bin neu hier und Anfänger mit dem Android Studio und Kotlin.
Leider (wie so oft) hab ich Probleme mich da einzuarbeiten (irgendwas geht immer nicht, wie ich es mir vorstelle ).
Also zum Problem:
Ich habe einen kleinen Taschenrechner mit einem GridLayout im Designer erstellt. Das funktioniert ganz gut. Jetzt wollte ich aber eine eigene Klasse, die von GridLayout erbt erstellen:
Java
package calculator
import android.widget.GridLayout
import android.content.Context
import android.util.AttributeSet
import kotlinx.android.synthetic.main.activity_main.view.*
class CalcView(context: Context, attributes:AttributeSet?) : GridLayout (context, attributes), CalcViewInterface {
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CalcController.attach(this)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CalcController.detach()
}
override fun setEquation(equation: String) {
this.grid_main.text_calc.text = equation
TODO("not implemented") //To change body of created functions use File | Settings | File Templates
}
override fun setResult(result: String) {
this.grid_main.text_calc.text= result
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
fun update ()
{
grid_main.text_calc.text = "Clicked"
}
}
Alles anzeigen
In meiner activity_main.xml habe ich dann die KLasse eingetragen. Leider verschwinden dann alle Buttons von meiner Vorschau. Nur das TextView bleibt erhalten und ich weiß einfach nicht, was ich falsch mache:
XML
<?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="myc.calc.mycal.MainActivity">
<calculator.CalcView
android:id="@+id/grid_main"
android:layout_width="0dp"
android:layout_height="0dp"
android:addStatesFromChildren="true"
android:background="@color/colorButton"
app:alignmentMode="alignMargins"
app:columnCount="4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:rowCount="7">
<TextView
android:id="@+id/text_calc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorButton"
android:gravity="right"
android:paddingRight="40dp"
android:paddingTop="20dp"
android:text="@string/b_0"
android:textColor="@color/colorFontWhite"
android:textSize="30sp"
app:layout_column="0"
app:layout_columnSpan="4"
app:layout_gravity="fill"
app:layout_row="0" />
<Button
android:id="@+id/b_cos"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/colorButton"
android:gravity="center|fill"
android:text="@string/b_cos"
android:textColor="@color/colorFontGreen"
android:textSize="24sp"
android:textAlignment="center"
app:layout_column="2"
app:layout_columnWeight="1"
app:layout_row="6"
app:layout_rowWeight="1" />
... weiter Buttons
</calculator.CalcView>
Alles anzeigen
Was mache ich falsch. Über eure Hilfe würde ich mich sehr freuen.
Vielen Dank und Gruß
Senifor