EditBox auf Wert null prüfen und dann Text ausgeben.

  • Antworten:8
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 32

23.05.2017, 22:27:35 via Website

Hallo

Ich habe ein Programm geschrieben wo ich den EditBox auf den Wert null prüfe. Wenn der Wert null ist, soll eine Text auf dem Bildschirm erscheinen. Das Problem ist das ich 3 Edit Boxen habe und bei jedem soll ein anderer Text stehen, aber es wird mir immer der selbe Text ausgegeben und zwar der von der 1. EditBox.
Hier mein Code

public class RechnerActivity extends AppCompatActivity {

TextView ergebnis;
TextView gesucht;
EditText v;
EditText g;
EditText t;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rechner);
    setTitle("Taschenrechner");



    ergebnis = (TextView)findViewById(R.id.ergebnis);
    gesucht = (TextView)findViewById(R.id.gesucht);
    v = (EditText)findViewById(R.id.v);
    final String vs = v.getText().toString();
    g = (EditText)findViewById(R.id.g);
    final String gs = g.getText().toString();
    t = (EditText)findViewById(R.id.t);
    final String ts = t.getText().toString();

    Button rechner = (Button)findViewById(R.id.rechnen);

    rechner.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (vs.equals("")){
                gesucht.setText("v=?");
            }
            else if (gs.equals("")){
                gesucht.setText("g=?");
            }
            else if (ts.equals("")){
                gesucht.setText("t=?");
            }
        }
    });

Hoffe ihr könnt mir helfen.

Danke im voraus

— geändert am 23.05.2017, 22:34:03

Antworten
  • Forum-Beiträge: 2.909

23.05.2017, 23:30:31 via Website

Hallo Hans,

Dein Ablauf ist ein wenig falsch .

a) final sollte man in diesem Falle gar nicht verwenden - arbeite mit private
b) du nimmst dir bereits während des Layout AUfbaus den Text aus den Feldern - das macht keinen Sinn

Du musst im ClickListener die Werte auslesen.

— geändert am 23.05.2017, 23:31:10

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hans M.Pascal P.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

24.05.2017, 08:50:50 via App

Hallo Hans!

Ich habe deinen Thread mal in den passenden Bereich verschoben. ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Hans M.

Antworten
  • Forum-Beiträge: 32

24.05.2017, 12:05:31 via Website

Danke swa00 für dein Vorschlag. Ich habe es getestet, aber es funktioniert leider immer noch nicht. Es besteht immer noch das gleiche Problem.

— geändert am 24.05.2017, 14:10:30

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

24.05.2017, 14:51:41 via App

Hallo Hans!
Ohne Code können wir dir nicht helfen ;)
Poste diesen mal bitte

LG Pascal //It's not a bug, it's a feature. :) ;)

Hans M.

Antworten
  • Forum-Beiträge: 32

24.05.2017, 16:34:27 via Website

Mein Code von der MainActivity steht breit's oben. Oder meinst du einen anderen Code?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

24.05.2017, 17:02:59 via Website

ich meine den Code, nach deiner Änderung ;)

Vom Prinzip her so:

 ergebnis = (TextView)findViewById(R.id.ergebnis);
    gesucht = (TextView)findViewById(R.id.gesucht);
    v = (EditText)findViewById(R.id.v);
  g = (EditText)findViewById(R.id.g);
   t = (EditText)findViewById(R.id.t);

    Button rechner = (Button)findViewById(R.id.rechnen);

    rechner.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

 String vs = v.getText().toString();

    String gs = g.getText().toString();

    String ts = t.getText().toString();


            if (vs.equals("")){
                gesucht.setText("v=?");
            }
            else if (gs.equals("")){
                gesucht.setText("g=?");
            }
            else if (ts.equals("")){
                gesucht.setText("t=?");
            }
        }
    });

LG Pascal //It's not a bug, it's a feature. :) ;)

Hans M.

Antworten
  • Forum-Beiträge: 32

24.05.2017, 17:14:10 via Website

Jetzt funktioniert es, ich hatte es unter "Button rechner = (Button)findViewById(R.id.rechnen);" eingesetzt und nicht unter
" public void onClick(View v) ".

Vielen vielen Dank an euch.

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.183

24.05.2017, 17:25:51 via App

Hallo Hans!

Super, wenn deine Frage geklärt ist, setze doch bitte noch deinen Thread auf "Beantwortet"!

LG Pascal //It's not a bug, it's a feature. :) ;)

Hans M.

Antworten

Empfohlene Artikel