Hilfe bei Android App/Java

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

  • Hilfe bei Android App/Java

    Anzeige
    So erstmal vorweg, ja man hätte das in nem Programmier oder Java Forum Posten können aber da ich im Moment zu wenig Zeit hab um im jeweiligen Forum ein Konto zu erstellen und einzurichten poste ich es einfach hier.

    Ich bin blutiger Anfänger was das Programmieren mit dem Android Development Kit angeht und auch mit Java bin ich noch nicht so lange vertraut. Im Großen und Ganzen versuche ich einen Taschenrechner nachzubauen. Also erstmal nur die Grundrechnungsarten, aber eben schon mit Tasten (Dieses hier). Nun hab ich bis jetzt immer nur max einen Button mit einem OnClickListener eingebaut, aber dadurch dass es ja jetzt viele mehr werden, weiß ich nicht wie ich das anstelle. Ich kopiere mal hier meine "Bemühungen" rein und hoffe dass jemand das so verbessern kann dass es funktioniert. Im Moment stürzt die App nämlich immer ab wenn ich einen der virtuellen Tasten drücke.

    Hier der Code:

    Spoiler anzeigen

    Quellcode

    1. import android.os.Bundle;
    2. import android.app.Activity;
    3. import android.view.Menu;
    4. import android.view.View;
    5. import android.view.View.OnClickListener;
    6. import android.widget.Button;
    7. import android.widget.EditText;
    8. public class HauptklasseCalc extends Activity implements OnClickListener {
    9. @Override
    10. protected void onCreate(Bundle savedInstanceState) {
    11. super.onCreate(savedInstanceState);
    12. setContentView(R.layout.activity_hauptklasse_calc);
    13. }
    14. @Override
    15. public boolean onCreateOptionsMenu(Menu menu) {
    16. // Inflate the menu; this adds items to the action bar if it is present.
    17. getMenuInflater().inflate(R.menu.hauptklasse_calc, menu);
    18. return true;
    19. }
    20. public void ButtonKlick (View view) {
    21. }
    22. protected void Button() {
    23. setContentView(R.layout.activity_hauptklasse_calc);
    24. Button einserKnopf = (Button)findViewById(R.id.zahl1);
    25. einserKnopf.setOnClickListener(this);
    26. }
    27. @Override
    28. public void onClick(View ButtonZahl1) {
    29. EditText rechenzeile = (EditText)findViewById(R.id.editText1);
    30. double rechenergebnis;
    31. rechenergebnis = Double.parseDouble(rechenzeile.getText().toString());
    32. }
    33. }
    Alles anzeigen


    Hier die Activity.xml
    Spoiler anzeigen

    Quellcode

    1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2. xmlns:tools="http://schemas.android.com/tools"
    3. android:layout_width="match_parent"
    4. android:layout_height="wrap_content"
    5. android:paddingBottom="@dimen/activity_vertical_margin"
    6. android:paddingLeft="@dimen/activity_horizontal_margin"
    7. android:paddingRight="@dimen/activity_horizontal_margin"
    8. android:paddingTop="@dimen/activity_vertical_margin"
    9. tools:context=".HauptklasseCalc" >
    10. <Button
    11. android:id="@+id/zahl8"
    12. style="?android:attr/buttonStyleSmall"
    13. android:layout_width="wrap_content"
    14. android:layout_height="wrap_content"
    15. android:layout_alignBaseline="@+id/zahl9"
    16. android:layout_alignBottom="@+id/zahl9"
    17. android:layout_toLeftOf="@+id/zahl9"android:text="@string/Acht"
    18. android:onClick="ButtonZahl8"/>
    19. <Button
    20. android:id="@+id/zahl9"
    21. style="?android:attr/buttonStyleSmall"
    22. android:layout_width="wrap_content"
    23. android:layout_height="wrap_content"
    24. android:layout_above="@+id/zahl0"
    25. android:layout_toRightOf="@+id/zahl0"
    26. android:text="@string/Neun"
    27. android:onClick="ButtonZahl9"/>
    28. <Button
    29. android:id="@+id/zahl7"
    30. style="?android:attr/buttonStyleSmall"
    31. android:layout_width="wrap_content"
    32. android:layout_height="wrap_content"
    33. android:layout_alignBaseline="@+id/zahl8"
    34. android:layout_alignBottom="@+id/zahl8"
    35. android:layout_toLeftOf="@+id/zahl8"
    36. android:text="@string/Sieben"
    37. android:onClick="ButtonZahl7"/>
    38. <Button
    39. android:id="@+id/zahl0"
    40. style="?android:attr/buttonStyleSmall"
    41. android:layout_width="wrap_content"
    42. android:layout_height="wrap_content"
    43. android:layout_alignParentBottom="true"
    44. android:layout_centerHorizontal="true"
    45. android:layout_marginBottom="17dp"
    46. android:text="@string/Null"
    47. android:onClick="ButtonZahl1"/>
    48. <Button
    49. android:id="@+id/zahl6"
    50. style="?android:attr/buttonStyleSmall"
    51. android:layout_width="wrap_content"
    52. android:layout_height="wrap_content"
    53. android:layout_above="@+id/zahl9"
    54. android:layout_alignLeft="@+id/zahl9"android:text="@string/Sechs"
    55. android:onClick="ButtonZahl6"/>
    56. <Button
    57. android:id="@+id/zahl5"
    58. style="?android:attr/buttonStyleSmall"
    59. android:layout_width="wrap_content"
    60. android:layout_height="wrap_content"
    61. android:layout_alignBaseline="@+id/zahl6"
    62. android:layout_alignBottom="@+id/zahl6"
    63. android:layout_toLeftOf="@+id/zahl6"android:text="@string/Funf"
    64. android:onClick="ButtonZahl5"/>
    65. <Button
    66. android:id="@+id/zahl4"
    67. style="?android:attr/buttonStyleSmall"
    68. android:layout_width="wrap_content"
    69. android:layout_height="wrap_content"
    70. android:layout_alignBaseline="@+id/zahl5"
    71. android:layout_alignBottom="@+id/zahl5"
    72. android:layout_alignLeft="@+id/zahl7"android:text="@string/Vier"
    73. android:onClick="ButtonZahl4"/>
    74. <Button
    75. android:id="@+id/zahl3"
    76. style="?android:attr/buttonStyleSmall"
    77. android:layout_width="wrap_content"
    78. android:layout_height="wrap_content"
    79. android:layout_above="@+id/zahl6"
    80. android:layout_alignLeft="@+id/zahl6"android:text="@string/Drei"
    81. android:onClick="ButtonZahl3"/>
    82. <Button
    83. android:id="@+id/zahl2"
    84. style="?android:attr/buttonStyleSmall"
    85. android:layout_width="wrap_content"
    86. android:layout_height="wrap_content"
    87. android:layout_above="@+id/zahl5"
    88. android:layout_toRightOf="@+id/zahl4"
    89. android:text="@string/Zwei"
    90. android:onClick="ButtonZahl2"/>
    91. <Button
    92. android:id="@+id/zahl1"
    93. style="?android:attr/buttonStyleSmall"
    94. android:layout_width="wrap_content"
    95. android:layout_height="wrap_content"
    96. android:layout_alignBaseline="@+id/zahl2"
    97. android:layout_alignBottom="@+id/zahl2"
    98. android:layout_toLeftOf="@+id/zahl2"android:text="@string/Eins"
    99. android:onClick="ButtonZahl1"/>
    100. <Button
    101. android:id="@+id/plus"
    102. style="?android:attr/buttonStyleSmall"
    103. android:layout_width="wrap_content"
    104. android:layout_height="wrap_content"
    105. android:layout_above="@+id/zahl6"
    106. android:layout_marginLeft="15dp"
    107. android:layout_toRightOf="@+id/zahl6"android:text="@string/Plus"
    108. android:onClick="ButtonPlus"/>
    109. <Button
    110. android:id="@+id/minus"
    111. style="?android:attr/buttonStyleSmall"
    112. android:layout_width="wrap_content"
    113. android:layout_height="wrap_content"
    114. android:layout_above="@+id/zahl9"
    115. android:layout_alignLeft="@+id/plus"android:text="@string/Minus"
    116. android:onClick="ButtonMinus"/>
    117. <Button
    118. android:id="@+id/mal"
    119. style="?android:attr/buttonStyleSmall"
    120. android:layout_width="wrap_content"
    121. android:layout_height="wrap_content"
    122. android:layout_alignLeft="@+id/minus"
    123. android:layout_below="@+id/minus"android:text="@string/Mal"
    124. android:onClick="ButtonMal"/>
    125. <Button
    126. android:id="@+id/durch"
    127. style="?android:attr/buttonStyleSmall"
    128. android:layout_width="wrap_content"
    129. android:layout_height="wrap_content"
    130. android:layout_alignLeft="@+id/mal"
    131. android:layout_below="@+id/mal"android:text="@string/Durch"
    132. android:onClick="ButtonDurch"/>
    133. <EditText
    134. android:id="@+id/editText1"
    135. android:layout_width="match_parent"
    136. android:layout_height="wrap_content"
    137. android:layout_above="@+id/zahl3"
    138. android:layout_centerHorizontal="true"
    139. android:layout_marginBottom="44dp"
    140. android:ems="10"
    141. android:height="50dp"
    142. android:maxWidth="100dp"
    143. android:minHeight="50dp"
    144. android:minWidth="50dp" >
    145. <requestFocus />
    146. </EditText>
    147. </RelativeLayout>
    Alles anzeigen
  • InsaneGames schrieb:

    EditText rechenzeile = (EditText)findViewById(R.id.editText1); double rechenergebnis; rechenergebnis = Double.parseDouble(rechenzeile.getText().toString());


    Kriegst du keine Exception / Stacktrace in der console angezeigt?
    Kriegst du vielleicht dort eine Nullpointerexception?
    Ist EditText rechenzeile vielleicht null?
    Oder kriegst du ein textlosen String?
    Sinkrate

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tyerell ()

  • Ganz einfach. Das Problem steht da direkt. Er findet die Methode ButtonZahl1 nicht.
    Schau dir mal wie man das "onclick" Attribute benutzt. Du musst eine Methode erstellen, die so heißt.

    Aber schau dir mal das Beispiel an. Entweder mit Listener ODER einer Methode.
    developer.android.com/reference/android/widget/Button.html
    Sinkrate

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Tyerell ()

  • Anzeige
    Huihuihui :D
    Ich glaube da geht noch einiges drunter und drüber bei dir. So wie ich das jetzt aus deinen Veriabelnamen lesen kann, hast du eine Hauptklasse für deinen Rechner. Diese soll des Weiteren das Interface ActionListener implementieren oder?
    Würde es nicht Sinn machen, wenn man schon eine objektorientierte Sprache hat, eine weitere Klasse für den ActionListener zu schreiben? Generell lieber viele Klassen mit kurzen Methoden. Das ist übersichtlicher und macht die Sache leichter. Wenn du versuchst in eine Klasse alles zu packen, kannst du sie im Grunde auch nicht mehr wieder verwenden.
    Vielleicht solltest du, bevor du Apps schreibst nochmal an einer anderen Stelle einsteigen, z.B den Rechner versuchen als normale Java Application auf deinem Desktop zu realisieren :) Hat du denn eine komplette Projektdatei, dann könnte ich vlt nochmal drüber sehen.
    Taktik? Simulation? Realismus? Dann klick mich!
  • Das normale erstellen eines TRs ist eig. kein Problem was die Funktionen angeht. Hab mich aber für ne App entschieden da das UI bei den Apps einfacher ist, JButton und JFrame sind ja nich so toll was die Eibfachheit angeht. Das Problem ist eben dass ich mit OnClickListenern und den ganzen Android Befehlen noch nicht so vertraut bin. Werde das Projekt am Abend mal bei MediaFire hochladen.
  • Naja GUI Design unter Java macht generell nicht so die Freude, aber ich bin da sowieso nicht sonderlich ambitioniert :D Meistens greife ich bei Projekten für private Zwecke oder für die Uni auch auf einen GUI Designer zurück. Das sollte man allerdings erst tuen, wenn man es theortisch auch per Hand machen könnte, die Grundlagen also drauf hat. Ansonsten passiert da zu viel Magic. Daher ist deine Entscheidung dich erstmal zu quälen schon richtig ^^
    Taktik? Simulation? Realismus? Dann klick mich!