Android Widgets Tutorial

En widget er en liten gadget eller kontroll over din android søknad plassert på startskjermen. Widgets kan være veldig nyttig som de tillater deg å sette favorittprogrammer på startskjermen for å få rask tilgang til dem. Du har sikkert sett noen vanlige widgets, for eksempel musikk widget, vær-widget, klokke widget etc

Widgets kan være av mange typer som informasjons widgets, samling widgets, kontroll widgets og hybrid widgets. Android gir oss et komplett rammeverk for å utvikle våre egne widgets

Widget -. XML fil

For å lage et program widget, er første du trenger AppWidgetProviderInfo objekt, som du vil definere en egen widget XML-fil. For å gjøre det, høyreklikk på prosjektet og lage en ny mappe som heter xml
. Nå høyreklikk på den nyopprettede mappen og opprette en ny XML-fil. Ressurs type XML-filen bør settes til AppWidgetProvider
. I xml filen, definere noen egenskaper som er som følger −
< appwidget-leverandøren xmlns: android = "http://schemas.android.com/apk/res/android" android: minWidth = "146dp" android: updatePeriodMillis = "0" android: minHeight = "146dp" android: initialLayout = "@ layout /activity_main" > < /appwidget-leverandør >
Widget - Layout fil

Nå må du definere utformingen av widget i din standard XML-fil. Du kan dra komponenter for å generere auto xml

Widget -. Java fil

Etter å definere layout, nå opprette et nytt JAVA-fil eller bruke eksisterende, og utvide den med AppWidgetProvider
klasse og overstyre sin oppdateringsmetode som følger.

I oppdateringen metoden, må du definere gjenstand for to klasser som er PendingIntent og RemoteViews. Syntaksen er −
PendingIntent påvente = PendingIntent.getActivity (kontekst, 0, forsett, 0); RemoteViews utsikt = nye RemoteViews (context.getPackageName (), R.layout.activity_main);

I slutten du må ringe en oppdatering metode updateAppWidget () av ​​AppWidgetManager klassen. Syntaksen er −
appWidgetManager.updateAppWidget (currentWidgetId, synspunkter);

En del fra updateAppWidget metode, det finnes andre metoder definert i denne klassen å manipulere widgets. De er som følger −
Sr.NoMethod & Description1 onDeleted (Context kontekst, int [] appWidgetIds)

Dette kalles når en forekomst av AppWidgetProvider slettes.
2 onDisabled (Context kontekst)

Dette kalles når den siste forekomsten av AppWidgetProvider slettes
3 onEnabled (Context kontekst)

Dette kalles når en forekomst av AppWidgetProvider er opprettet.
4 OnReceive (Context kontekst , Intent hensikt)

Den brukes til å sende samtaler til ulike metoder for klassen

Widget - Manifestfilen

Du må også erklære AppWidgetProvider klasse i ditt manifest fil som følger:
< mottaker android: name = "ExampleAppWidgetProvider" > < intent-filter > < handling android: name = "android.appwidget.action.APPWIDGET_UPDATE" /> < /intent-filter > < meta-data android: name = "android.appwidget.provider" android: ressurs = "@ xml /example_appwidget_info" /> < /mottaker >
Eksempel

Her er et eksempel demonstrere Bruken av søknaden Widget. Det skaper en grunnleggende widget-applikasjoner som vil åpne denne aktuelle nettsiden i nettleseren.

For å eksperimentere med dette eksempelet, må du kjøre dette på en faktisk enhet der internett er i gang.
StepsDescription1You vil bruke Android studio for å lage en Android-applikasjon under en pakke com.example.sairamkrishna.myapplication. Mens du oppretter dette prosjektet, må du Target SDK og kompilere med på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /MainActivity.java fil for å legge widget code.3Modify res /layout /activity_main å legge respektive XML components4Create en ny mappe og xml fil under res /xml /mywidget.xml å legge respektive XML components5Modify den AndroidManifest.xml å legge de nødvendige permissions6Run programmet og velge en som kjører Android-enhet, og installere programmet på den og verifisere resultatene.

Følgende er innholdet i den modifiserte MainActivity.java
.
pakken com.example.sairamkrishna.myapplication, import android.app.PendingIntent, import android.appwidget.AppWidgetManager, import android.appwidget.AppWidgetProvider, import android.content.Context, import android.content.Intent; import android. net.Uri, import android.widget.RemoteViews, importere android.widget.Toast; public class MainActivity strekker AppWidgetProvider {public void onUpdate (Context kontekst, AppWidgetManager appWidgetManager, int [] appWidgetIds) {for (int i = 0; i < appWidgetIds .length; i ++) {int currentWidgetId = appWidgetIds [i]; String url = "http://www.tutorialspoint.com"; Intent hensikt = new Intent (Intent.ACTION_VIEW); intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData (Uri.parse (url)); PendingIntent påvente = PendingIntent.getActivity (kontekst, 0, forsett, 0); RemoteViews utsikt = nye RemoteViews (context.getPackageName (), R.layout.activity_main); views.setOnClickPendingIntent (R.id.button, pending); appWidgetManager.updateAppWidget (currentWidgetId, synspunkter); Toast.makeText (kontekst, "widget lagt til", Toast.LENGTH_SHORT) .vis (); }}}

Følgende er endret innholdet i xml res /layout /activity_main.xml
< 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: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight = ". MainActivity" "@ dimen /activity_horizontal_margin" android: paddingTop = "@ dimen /activity_vertical_margin" android:: paddingBottom = "@ dimen /activity_vertical_margin" verktøy kontekst = android: transitionGroup = "true" > < TextView android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: id = "+ id /textView" android: layout_centerHorizontal = "true" android: textcolor = "# ff3412ff "android: Tekststørrelse =" 35dp "/> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Widget" android: id = "+ id /knapp" android: layout_centerHorizontal = "true" android: layout_marginTop = "61dp" android : layout_below = "+ id /textView" /> &lr; /RelativeLayout >

Følgende er innholdet i res /xml /mywidget.xml
< xml version =.? "1.0" encoding = "utf-8" > < appwidget-leverandøren xmlns:? android = "http://schemas.android.com/apk/res/android" android: minWidth = "146dp" android: updatePeriodMillis = "0" android: minHeight = "146dp" android: initialLayout = "@ layout /activity_main" > < /appwidget-leverandør >

Følgende er innholdet i res /verdier /string.xml

. < resources > < string name = "APP_NAME" > My Application < /string > < string name = "hello_world" > Hei, verden <! /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

Følgende er innholdet av AndroidManifest.xml
fil
. <? xml version = "1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.sairamkrishna.myapplication "> < søknad android: allowBackup = "true" android: icon = "@ Mipmap /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < mottaker android: name = ". MainActivity" > < intent-filter > < handling android: name = "android.appwidget.action.APPWIDGET_UPDATE" > < /action > < /intent-filter > < meta-data android: name = "android.appwidget.provider" android: ressurs = "@ xml /mywidget" > < /meta-data > < /motta > < /søknad > < /manifest >

La oss prøve å kjøre programmet. Jeg antar at du har koblet den faktiske Android Mobile-enhet med datamaskinen. For å kjøre programmet fra Android studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Før du starter programmet, vil Android studio vise følgende vindu for å velge et alternativ hvor du vil kjøre Android-applikasjon.

Velg den mobile enheten som et alternativ, og deretter sjekke den mobile enheten som vil vise din standard skjerm og minus;

Gå til din widget delen og avgi din opprettet widget på skrivebordet eller startskjermen. Det vil se omtrent slik ut −

Nå bare trykke på widgeten knappen som vises, for å starte nettleseren. Men før det må du sørge for at du er koblet til internett. Etter å ha trykket på knappen, vil følgende skjerm vises −

Merk. Ved bare å endre url i java-fil, vil din widget åpne ønsket nettsted i nettleseren.