Änderungen im EditText abfangen

  • 9 Antworten
  • Letztes Antwortdatum
E

ECS

Neues Mitglied
0
Ich habe folgendes Problem:
Ein ok-Button soll erst visible wenn im EditText ein Wert eingegeben wurde.
Ich finde keinen richtigen Listener, für EditText der reagiert, wenn dort ein Wert geändert oder Key gedrückt wird.
onKey() reagiert nur bei der "Entertaste"

Was mache ich falsch ?
 
Habe das ganze mal getestet, bei mir reagiert onKey() bei jeder Taste (auch bei dem Home und Zurück Button, benötigst also eventuell noch ne Fallunterscheidung)

main.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<EditText android:id="@+id/edittext"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    />
<Button android:id="@+id/button"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="Ich bin ein Button"
    android:visibility="invisible"
    />
</LinearLayout>
Meine Activity subclass:
Code:
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Button;
import android.view.View;
import android.view.KeyEvent;

public class MainActivity extends Activity implements View.OnKeyListener
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        EditText edit = (EditText) findViewById(R.id.edittext);
        edit.setOnKeyListener(this);
    }
    public boolean onKey(View v, int keyCode, KeyEvent event)
    {
        Button button = (Button) findViewById(R.id.button);
        button.setVisibility(0);
        return false;
    }
}
 
Zuletzt bearbeitet:
Bei mir geht es auf dem G2 Touch nicht.
Es reagiert nur auf spezielle Tasten.
 
Ich kämpfe gerade mit demselben Problem und habe noch keine Lösung gefunden. Vermutlich muss man die Events über das eingeblendete SoftKeyboard abfangen; sie werden nicht bis zum Druck von ENTER (oder z.B. Backspace) nicht an die EditText-Instanz weitergeleitet.
 
Die Lösung ist:

public class UITest extends Activity implements TextWatcher
{
....

public void onTextChanged(CharSequence s, int start, int before, int count) {
..
}
}
 
..funktioniert bestens - vielen Dank!
 
Hi Leute,

bei mir schmiert die App immer ab sobald ich das Edit auf Veränderung abfrage ab. Hat vielleicht jemand ne Idee? Sinn ist ein Button soll erst erscheinen sobald etwas ins Edit eingetragen wird.

Code:
final EditText Stand_scan = (EditText) findViewById(R.id.stand_scannen_edit);
Stand_scan_var = Stand_scan.getText().toString();
        
Stand_scan.addTextChangedListener(new TextWatcher() {

            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public void afterTextChanged(Editable arg0) {
                OK_Button.setVisibility(View.VISIBLE); // Hier fliegt mir die APP um die Ohren!
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });
 
So gehts, aber wo da jetzt der großer Unterschied sein soll :blink::blink:

Code:
final EditText Stand_scan = (EditText) findViewById(R.id.stand_scannen_edit);
        Stand_scan_var = Stand_scan.getText().toString();

        TextWatcher textWatcher = new TextWatcher() {

            public void onTextChanged(CharSequence s, int start, int before, int count) {

                

            }
            public void afterTextChanged(Editable arg0) {

                OK_Button.setVisibility(View.VISIBLE);

            }
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }
            };


        Stand_scan.addTextChangedListener(textWatcher);
 
ähm ist das jetzt dein ernst?

in variante 1 wirfst du in jeder textwatcher methode eine exception - ist ja klar, dass dann die app abschmiert, wenn du es so hinschreibst ;) oder check ich da was nicht?
 
Lool

Wo hast das denn bitte gelernt?

Mein Tipp: Erstmal die Java Grundlagen lernen bevor ihr euch an die App Entwicklung macht. Glaubt mir sobald ihr erst mal die Grundlagen beherrscht werdet ihr deutlich mehr Spaß an der App Entwicklung haben.
 

Ähnliche Themen

Jennywise
Antworten
2
Aufrufe
138
Jennywise
Jennywise
D
  • djsnoopy
Antworten
6
Aufrufe
815
djsnoopy
D
S
Antworten
8
Aufrufe
807
swa00
swa00
Zurück
Oben Unten