Globale Variable deklarieren

  • Antworten:10
Jonas Hohmann
  • Forum-Beiträge: 5

22.05.2013, 20:45:00 via Website

Ich habe grade damit angefangen Apps zu programmieren. Ich kann bereits C++ und habe mich in Java relativ schnell zurecht gefunden. Ich versuche nun eine simple Taschenrechnerapp zu Programmieren; ein paar Buttons reingehauen, ein Textfeld und das ganze sah schon nach einem Taschenrechner aus. Das einzige was mit jetzt noch fehlt wäre eine Variable die ich global anlege. Etwas wie float wert[i] oder einfach nur int wert1. Bei C++ lege ich diese einfach unter dem Header an. An welcher Stelle mache ich das Bei Java? Ich habe schon etwas gegooglet aber die Ergebnisse haben mir nicht wirklich weitergeholfen. Der Anfang von meinem Code sieht so aus:
1package net.vetm;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.view.Menu;
6import android.view.View;
7import android.widget.EditText;
8
9
10public class MainActivity extends Activity {
11 @Override
12 protected void onCreate(Bundle savedInstanceState) {
13 super.onCreate(savedInstanceState);
14 setContentView(R.layout.activity_main);
15 }
16
17 @Override
18 public boolean onCreateOptionsMenu(Menu menu) {
19 // Inflate the menu; this adds items to the action bar if it is present.
20 getMenuInflater().inflate(R.menu.main, menu);
21 return true;
22
23
24
25 }
26 public void onClickButton1 (View view){
27 EditText FeldErgebnis = (EditText)findViewById(R.id.etErgebnis);
28 FeldErgebnis.append("1");
29 }

An welcher Stelle packe ich da jetzt meine Variable rein?

— geändert am 22.05.2013, 21:11:26

Antworten
Gelöschter Account
  • Forum-Beiträge: 18

22.05.2013, 21:10:10 via Website

Hi,

Jonas Hohmann

public class MainActivity extends Activity {
int zahl1;
dort hast du eine Variable definiert.

Gruß

Antworten
Jonas Hohmann
  • Forum-Beiträge: 5

22.05.2013, 21:11:16 via Website

Ups! Das war nur ein Versuch. Hat aber nicht geklappt...

Antworten
Jonas Hohmann
  • Forum-Beiträge: 5

22.05.2013, 21:46:47 via Website

Die Variable zu verwenden.

Antworten
Jonas Hohmann
  • Forum-Beiträge: 5

22.05.2013, 22:13:13 via Website

Der Fehler lag wo anders :sleep: Ich habe versucht den '+' Button umzufunktionieren und ihn einfach den Wert um eins erhöhen zu lassen. Leider habe ich vergessen, dass ich in editText Feldern nur Strings ausgeben lassen kann. In C++ wurde das Programm dann einfach nicht gestartet. Tut mir leid für die doofe Frage... Trotzdem danke für die schnelle Hilfe.

Antworten
Qpa
  • Forum-Beiträge: 75

22.05.2013, 22:15:28 via Website

Von wo aus wolltest du denn darauf zu greifen?

Antworten
Jonas Hohmann
  • Forum-Beiträge: 5

22.05.2013, 22:21:08 via Website

Aus einer Funktion. Die so aussah:
1public void onClickButtonPlus (View view){
2 EditText FeldErgebnis = (EditText)findViewById(R.id.etErgebnis);
3 zahl1 = Integer.parseInt(FeldErgebnis.getText().toString());
4 zahl1 = zahl1+1;
5 FeldErgebnis.setText(zahl1);
6 }

Das Problem war, dass man nur Strings in editTexts einsetzen kann.

Antworten
Christian
  • Forum-Beiträge: 307

22.05.2013, 22:49:07 via Website

Hi Jonas,

vielleicht noch als Tipp:

verlagere die findViewById Aufrufe in díe onCreate-Funktion.
So wie es jetzt ist wird deine Layout-XML jedesmal nach der gleichen View durchsucht wenn du denn Button drückst.

Mfg Christian

Antworten
Gelöschter Account
  • Forum-Beiträge: 18

27.05.2013, 18:29:14 via Website

Jonas Hohmann
Aus einer Funktion. Die so aussah:
1public void onClickButtonPlus (View view){
2 EditText FeldErgebnis = (EditText)findViewById(R.id.etErgebnis);
3 zahl1 = Integer.parseInt(FeldErgebnis.getText().toString());
4 zahl1 = zahl1+1;
5 FeldErgebnis.setText(zahl1);
6 }

Das Problem war, dass man nur Strings in editTexts einsetzen kann.

1FeldErgebnis.setText(String.valueOf(zahl1));

Antworten