askIT

EditText listener

Hvis du ønsker å hente ut tekst fra et tekstfelt når det endrer seg kan du sette opp en listener på tekstfeltet.

I koden under har vi et tekstfelt med id editTextUsername. Vi bruker metoden addTextChangedListener på variabelen for å se etter endringer.

/* EditText Username listener */
EditText editTextUsername = (EditText)findViewById(R.id.editTextUsername);
editTextUsername.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
                if(!(s.toString().equals(""))){
                        // Min kode programmeres under her
                }
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
});

Eksempel

La oss lage en enkel applikasjon som skriver ut til skjermen det som blir skrevet til en EditText.

01_skriv_ut_med_listener_android.jpg

Vi starter med designet. Legg på en EditText og sett ID til editTextUsername.

01_design_brukernavn_id.jpg

Gå til MainActivity.java og programer metoden void sayHello(). Denne tar inn EditText og gjør den om til en streng. Deretter benytter den Toast til å skrive tekststrengen ut til skjermen.

void sayHello(){
        EditText editTextUsername = (EditText)findViewById(R.id.editTextUsername);
        String username = editTextUsername.getText().toString();
        Toast.makeText(this, "Hei " + username, Toast.LENGTH_SHORT).show();
}

Nå kan du programmere listener. Denne sjekker om EditText endrer seg. Hvis den gjør det kjører den metoden sayHello().

/* EditText Username listener */
EditText editTextUsername = (EditText)findViewById(R.id.editTextUsername);
editTextUsername.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
                if(!(s.toString().equals(""))){
                        // Min kode programmeres under her
                        sayHello();
                }
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
});

Hele MainActivity.java

package com.nettport.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                /* EditText Username listener */
                EditText editTextUsername = (EditText)findViewById(R.id.editTextUsername);
                editTextUsername.addTextChangedListener(new TextWatcher() {
                        public void afterTextChanged(Editable s) {
                                if(!(s.toString().equals(""))){
                                        sayHello();
                                }
                        }
                        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
                        public void onTextChanged(CharSequence s, int start, int before, int count) {}
                });



        }

        void sayHello(){
                EditText editTextUsername = (EditText)findViewById(R.id.editTextUsername);
                String username = editTextUsername.getText().toString();
                Toast.makeText(this, "Hei " + username, Toast.LENGTH_SHORT).show();
        }

}

mark_down.png Annonse

Akuratt nå: Ask IT bruker og anbefaler one.com for domener, e-post og webhotell!
hva-er-ditt-nye-domene.com
Besøk oss på one.com