Android Hendelses Handling

Arrangementer er en nyttig måte å samle inn data om brukerens interaksjon med interaktive komponenter i Applications.
Som knappetrykk eller skjerm berørings etc. Android rammeverket opprettholder en hendelse kø som først-inn, først ut (FIFO) basis. Du kan fange opp disse hendelsene i programmet, og iverksette nødvendige tiltak som per krav

Det er følgende tre begreper knyttet til Android Event Management −.

  • Hendelses Lyttere
    − En hendelse lytteren er et grensesnitt i Vis klassen som inneholder en enkelt tilbakering metode. Disse metodene vil bli oppringt av Android rammeverket når visnings som tilhørerne har blitt registrert er utløst av brukerinteraksjon med elementet i brukergrensesnittet.

  • Hendelses Lyttere Registrering
    − Hendelse Registrering er prosessen der en hendelse Handler blir registrert med en hendelse lytteren slik at behandleren kalles når hendelsen List branner hendelsen.

  • Hendelses Handlers Anmeldelser − Når en hendelse skjer, og vi har registrert en hendelse lytteren for hendelsen, kaller hendelsen lytteren Hendelses Handlers, som er den metoden som faktisk håndterer hendelsen

    Event Lyttere &.; Hendelses Handlers
    Hendelses HandlerEvent Ener & DescriptiononClick () OnClickListener ()

    Dette kalles når brukeren enten klikk eller berører eller fokuserer på noen widget som knapp, tekst, bilde etc. Du vil bruke onClick () hendelseshåndterer å håndtere en slik hendelse .
    onLongClick () OnLongClickListener ()

    Dette kalles når brukeren enten klikk eller berører eller fokuserer på noen widget som knapp, tekst, bilde etc. for en eller flere sekunder. Du vil bruke onLongClick () hendelseshåndterer å håndtere en slik hendelse.
    OnFocusChange () OnFocusChangeListener ()

    Dette kalles når widgeten mister sitt fokus ie. brukeren går bort fra visningen elementet. Du vil bruke onFocusChange () hendelseshåndterer å håndtere en slik hendelse.
    Onkey () OnFocusChangeListener ()

    Dette kalles når brukeren er fokusert på elementet og presser eller utgivelser et hardware nøkkel på apparatet. Du vil bruke onkey () hendelseshåndterer å håndtere en slik hendelse.
    OnTouch () OnTouchListener ()

    Dette kalles når brukeren trykker på tasten, slipper nøkkelen, eller en hvilken som helst bevegelse gest på skjermen. Du vil bruke onTouch () hendelseshåndterer å håndtere en slik hendelse.
    OnMenuItemClick () OnMenuItemClickListener ()

    Dette kalles når brukeren velger et menyelement. Du vil bruke onMenuItemClick () hendelseshåndterer å håndtere en slik hendelse.
    OnCreateContextMenu () onCreateContextMenuItemListener ()

    Dette kalles da kontekstmenyen bygges (som et resultat av en vedvarende "lang klikk)

    Det er mange flere arrangement lyttere tilgjengelig som en del av Vis
    klasse som OnHoverListener, OnDragListener etc som kan være nødvendig for søknaden. Så jeg anbefaler å referere offisielle dokumentasjonen for Android-applikasjon utvikling i tilfelle du kommer til å utvikle en sofistikert apps.

    Event Lyttere Registrering

    Hendelses Registrering er prosessen der en hendelseshåndterer blir registrert med en hendelse lytteren slik at behandleren kalles når Hendelseslist branner hendelsen. Selv om det er flere vanskelige måter å registrere ditt arrangement lytteren for enhver hendelse, men jeg kommer til å liste ned bare toppen 3 måter, ut av som du kan bruke noen av dem basert på situasjonen.

    Ved hjelp av en Anonym Indre Class

    Aktivitets klassen implementerer lytteren grensesnittet.

    Ved hjelp Layout fil activity_main.xml spesifisere hendelseshåndterer direkte

    Under seksjonen vil gi deg detaljerte eksempler på alle de tre scenariene og minus;.

    Touch Mode

    Brukere kan samhandle med sine enheter ved hjelp av maskinvaretastene eller knapper eller berøre screen.Touching skjermen setter enheten i berøringsmodus. Brukeren kan deretter samhandle med det ved å trykke på skjermen virtuelle knapper, bilder, kan etc.You sjekke om enheten er i kontakt modus ved å ringe Vis klassens isInTouchMode () -metoden.
    Touch Hendelses

    Fokus

    En visning eller widget er vanligvis uthevet eller viser en blinkende markør når det er i fokus. Dette tyder på at den er klar til å ta imot innspill fra brukeren

    isFocusable ().
    - Den returnerer sant eller usant

    isFocusableInTouchMode () Anmeldelser - sjekker for å se om utsikten er fokuserbar i kontakt modus. (En visning kan være fokuserbar ved bruk av en hardware nøkkel, men ikke når enheten er i kontakt modus)
    android: foucsUp = "@ = id /button_l"
    onTouchEvent () Anmeldelser public boolean onTouchEvent (motionEvent hendelse) {switch (event.getAction ()) {case TOUCH_DOWN: Toast.makeText (dette, "du har klikket ned Touch knapp", Toast.LENTH_LONG) .vis (); gå i stykker(); case TOUCH_UP: Toast.makeText (dette, "du har klikket opp berøringsknapp", Toast.LENTH_LONG) .vis (); gå i stykker; case TOUCH_MOVE: Toast.makeText (dette, "du har klikket flytte berøringsknappen" Toast.LENTH_LONG) .vis (); gå i stykker; } Returnere super.onTouchEvent (hendelse);}
    Hendelseshåndtering Eksempler

    Event Lyttere Registrering Bruk Anonymous Indre Class

    Her finner du opprette en anonym implementering av lytteren, og vil være nyttig hvis hver klasse er brukt på en eneste kontroll bare og du har fordel å passere argumenter til hendelseshåndterer. I denne tilnærmingen hendelseshåndterer metoder kan få tilgang til private data av aktivitet. Ingen henvisning er nødvendig å ringe til aktivitet.

    Men hvis du har brukt den som håndterer mer enn én kontroll, ville du må klippe ut og lime inn koden for føreren og hvis koden for føreren er lang, det gjør koden vanskeligere å vedlikeholde.

    Følgende er de enkle stegene for å vise hvordan vi vil gjøre bruk av egen List klasse for å registrere og fange klikk hendelsen. Lignende måte kan implementere lytteren for annen nødvendig hendelsestype.
    StepDescription1You vil bruke Android studio IDE å lage en Android-applikasjon og navn det som myapplication
    under en pakke com.example.myapplication
    som forklart i Hello World Eksempel
    chapter.2Modify src /MainActivity.java
    fil for å legge klikk hendelsen lyttere og handlere for de to knappene defined.3Modify den detault innhold på < i> res /layout /activity_main.xml
    fil å inkludere Android UI controls.4No trenger å erklære mislighold streng constants.Android studio tar seg standard constants.5Run programmet til å lansere Android emulator og kontrollere resultatet av endringene som er gjort i den applikasjon.

    Følgende er innholdet i den modifiserte hovedaktivitet filen src /com.example.myapplication /MainActivity.java
    . Denne filen kan inneholde hver av de grunnleggende livssyklus metoder
    pakken com.example.myapplication;. Public class MainActivity strekker ActionBarActivity {private ProgressDialog fremgang; Button b1, b2; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); framgang = new ProgressDialog (denne); b1 = (Button) findViewById (R.id.button); b2 = (Button) findViewById (R.id.button2); b1.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {TextView txtView = (TextView) findViewById (R.id.textView); txtView.setTextSize (25);}}); b2.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {TextView txtView = (TextView) findViewById (R.id.textView); txtView.setTextSize (55);}}); }Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.menu_main, menyen); return true; }Override Public boolean onOptionsItemSelected (MENUITEM element) {//Håndtak handlingen bar varen klikk her. Handlingsfeltet vil //automatisk håndtere klikker på Hjem /Opp-knappen, så lenge //som du angir en forelder aktivitet i AndroidManifest.xml. int id = item.getItemId (); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) {return true; } Returnere super.onOptionsItemSelected (element); }}

    Etter vil være innholdet i res /layout /activity_main.xml
    fil −
    < RelativeLayout xmlns: android = "http://schemas.android.com/apk/res /Android "xmlns: verktøy =" http://schemas.android.com/tools "android: layout_width =" match_parent "android: layout_height =" match_parent "android: paddingBottom =" @ dimen /activity_vertical_margin "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "Android: paddingTop =" @ dimen /activity_vertical_margin. "verktøy: kontekst =" MainActivity "> < TextView android: id = "+ id /textView1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "hendelseshåndtering" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" android: Tekststørrelse = "30dp" /> < TextView android: id = "+ id /textView2" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: textcolor = "# ff87ff09" android: Tekststørrelse = "30dp "android: layout_above =" + id /imageButton "android: layout_centerHorizontal =" true "android: layout_marginBottom =" 40dp "/> < ImageButton android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /imageButton" android: src = "@ teikne /abc" android: layout_centerVertical = "true" android: layout_centerHorizontal = " true "/> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Liten skrift" android: id = "+ id /knapp" android: layout_below = "+ id /imageButton" android: layout_centerHorizontal = "true" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Large Skrift" android: id = "+ id /knappen2" android: layout_below = "+ id /knapp" android: layout_alignRight = "+ id /knapp" android: layout_alignEnd = "+ id /knapp" /> < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "! Hello World" android: id = "+ id /textView" android: layout_below = "+ id /knappen2" android: layout_centerHorizontal = "true" android: Tekststørrelse = "25dp" /> < /RelativeLayout >

    Etter vil være innholdet i res /verdier /strings.xml
    å definere to nye konstanter og minus;
    <? xml version = "1.0" encoding = "utf -8 ">? < resources > < string name = "APP_NAME" > myapplication < /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

    Følgende er innholdet mislighold av AndroidManifest.xml

    <? xml version = " 1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.myapplication "android: version =" en "android: versjon =" 1.0 "> < bruker-SDK android: minSdkVersion = "8" android: targetSdkVersion = "22" /> < søknad android: allowBackup = "true" android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: name = "com.example.myapplication.MainActivity" android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

    La oss prøve å kjøre ditt myapplication
    søknad. Jeg antar at du hadde laget ditt AVD
    mens du gjør oppsett miljø. For å kjøre programmet fra Android Studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Android Studio installerer programmet på AVD og starter den, og hvis alt er bra med oppsettet og søknad, vil det vise følgende Emulator vindu −

    Nå kan du prøve å klikke på to knapper, en etter en, og du vil se at skriften i Hello World
    teksten vil endre seg, noe som skjer fordi registrerte klikk hendelseshåndterer metoden blir kalt opp mot hvert klikk hendelsen.

    Exercise

    Jeg vil anbefale å prøve å skrive ulike hendelsesbehandlinger for ulike hendelsestyper og forstå eksakt forskjell på ulike hendelsestypene og deres håndtering. Hendelser knyttet til menyen, spinner, plukkere widgets er litt forskjellig, men de er også basert på de samme begrepene som forklart ovenfor. Anmeldelser