Eigene GridLayout Klasse ... Buttons verschwinden in der Vorschau

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Eigene GridLayout Klasse ... Buttons verschwinden in der Vorschau

    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-Quellcode

    1. package calculator
    2. import android.widget.GridLayout
    3. import android.content.Context
    4. import android.util.AttributeSet
    5. import kotlinx.android.synthetic.main.activity_main.view.*
    6. class CalcView(context: Context, attributes:AttributeSet?) : GridLayout (context, attributes), CalcViewInterface {
    7. override fun onAttachedToWindow() {
    8. super.onAttachedToWindow()
    9. CalcController.attach(this)
    10. }
    11. override fun onDetachedFromWindow() {
    12. super.onDetachedFromWindow()
    13. CalcController.detach()
    14. }
    15. override fun setEquation(equation: String) {
    16. this.grid_main.text_calc.text = equation
    17. TODO("not implemented") //To change body of created functions use File | Settings | File Templates
    18. }
    19. override fun setResult(result: String) {
    20. this.grid_main.text_calc.text= result
    21. TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
    22. }
    23. fun update ()
    24. {
    25. grid_main.text_calc.text = "Clicked"
    26. }
    27. }
    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-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. xmlns:app="http://schemas.android.com/apk/res-auto"
    4. xmlns:tools="http://schemas.android.com/tools"
    5. android:layout_width="match_parent"
    6. android:layout_height="match_parent"
    7. tools:context="myc.calc.mycal.MainActivity">
    8. <calculator.CalcView
    9. android:id="@+id/grid_main"
    10. android:layout_width="0dp"
    11. android:layout_height="0dp"
    12. android:addStatesFromChildren="true"
    13. android:background="@color/colorButton"
    14. app:alignmentMode="alignMargins"
    15. app:columnCount="4"
    16. app:layout_constraintBottom_toBottomOf="parent"
    17. app:layout_constraintEnd_toEndOf="parent"
    18. app:layout_constraintStart_toStartOf="parent"
    19. app:layout_constraintTop_toTopOf="parent"
    20. app:rowCount="7">
    21. <TextView
    22. android:id="@+id/text_calc"
    23. android:layout_width="match_parent"
    24. android:layout_height="wrap_content"
    25. android:background="@color/colorButton"
    26. android:gravity="right"
    27. android:paddingRight="40dp"
    28. android:paddingTop="20dp"
    29. android:text="@string/b_0"
    30. android:textColor="@color/colorFontWhite"
    31. android:textSize="30sp"
    32. app:layout_column="0"
    33. app:layout_columnSpan="4"
    34. app:layout_gravity="fill"
    35. app:layout_row="0" />
    36. <Button
    37. android:id="@+id/b_cos"
    38. android:layout_width="0dp"
    39. android:layout_height="0dp"
    40. android:background="@color/colorButton"
    41. android:gravity="center|fill"
    42. android:text="@string/b_cos"
    43. android:textColor="@color/colorFontGreen"
    44. android:textSize="24sp"
    45. android:textAlignment="center"
    46. app:layout_column="2"
    47. app:layout_columnWeight="1"
    48. app:layout_row="6"
    49. app:layout_rowWeight="1" />
    50. ... weiter Buttons
    51. </calculator.CalcView>
    Alles anzeigen

    Was mache ich falsch. Über eure Hilfe würde ich mich sehr freuen.

    Vielen Dank und Gruß
    Senifor