Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Probleme mit Textfeld

Empfohlene Antworten

Veröffentlicht

Hallo Leute! Ich muss einen Taschenrechner programmieren. Mit einem Textfeld als Anzeige.

Ich habe das jetzt so geregelt, dass meine Tasten (Buttons) den entsprechenden Wert als neue Variabel speichert (d.h. wenn ich auf Button mit der Nr. 1 klicke, ordnet der der Variablen "Zahl1" den Wert 1 zu). Jetzt kommt, dass wenn man auf einen Operationsbutton klickt (+ - * /) der danach angeklickte Button einer zweiten Variablen "Zahl2" einen Wert zuordnet. Ich bin soweit, dass er die einzelnen Zahlen auch im Textfeld zeigt und wenn ich auf den Operationsbutton klicke, leert sich das Textfeld wieder. Nun hab ich das weiterhin so geregelt, dass ich jedem Operationsbutton einen Wert zu geordnet habe (Plus ist 1, Minus ist 2 usw.). Jetzt liegt auf dem Button mit dem "=" eine If abfrage... die Prüft, welchen Wert die Operationsvariabel hat und führt dann die entsprechende Operation aus. Also zum Beispiel

if (Operationsvariabel == 1) {

Ergebnis = Zahl1 + Zahl2; }

Wie ihr seht ist Ergebnis auch eine Variabel.... und jetzt kommt mein dummes Problem!

Ich will das Ergebnis im Textfeld anzeigen...

tfAnzeige.setText( Ergebnis );

Der ***** gibt mir die Fehlermeldung

"cannot find symbol - method setText(int)"

Vielleicht liegt es daran, dass ich Ergebnis als int deklariert habe aber ich hab keine Ahnung, wie ich das sonst machen soll... Bitte helft mir!:confused:

wie stelle ich das an?

P.S. Ich weiß, dass es eine sehr komplizierte Weise ist, die ich insgesamt gewählt habe, aber wir haben in Informatik noch nicht mehr gemacht und dürfen auch keine neuen Befehle benutzen. Das ist eine sehr wichtige Facharbeit! Bitte helft mir! danke!

Das ist für eine Facharbeit, hast nicht mal einen blassen Schimmer von Casting und sollst dann einen Taschenrechner programmieren? :eek

Sei's drum. Vorweg noch: es heißt Variable.

Wie Du schon absolut richtig festgestellt hast, liegt das Problem daran, daß Du versuchst der setText()-Methode einen int-Wert zu übergeben. Ein Blick in die API offenbart das Offensichtliche: setText() nimmt nur String-Objekte an.

Aber zum Glück gibt's ja die Wrapper-Klasse Integer. Die bietet Dir eine statische Methode toString(int), die Dir aus einem übergebenen int-Wert ein String-Objekt bastelt.

Man schreibe also:

tfAnzeige.setText(Integer.toString(ergebnis));

Und wenn Du diese Methode nicht verwenden darfst, kannst Du Deine Implementierung gleich knicken.

Danke!

Und tschuldige bitte für den Schreibfehler :)

Frag mich nicht, warum wir jetzt schon so programmieren sollen... unser Unterricht besteht darin, dass wir uns fertige Programme angucken sollen und es wird erwartet, dass wir das Verstehen. Und nach einem Monat kommt unser Info-Lehrer mit so einem Schwachsinn... Ich bin der einzige aus unserem Kurs, der wenigstens eine geringe Vorstellung davon hat, wie man das machen könnte... Danke nochmal!:D

Oh Mann. Wie ich solche Lehrer verfluche. Info ist ein Fach, in dem man Wissen am besten über Praxis vermitteln kann. Es gibt Lehrer, die raffen learning-by.doing einfach nicht.

Naja. Ich drück' Dir die Daumen und empfehle die Lektüre eines guten Java-Buches (s. Sticky-Post im Java-Forum).

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.