En gjenbrukbar dialog om Android-appene dine

Enten du jobber på heltid som apputvikler, tar på deg den periodiske kontraktsjobben eller bare bygger smarttelefonapper som en hobby, en vanlig oppgave du vil finne deg selv å gjenta gang på gang er å lage en "om" -dialog. Om-dialogen gir et raskt middel for å kommunisere de viktigste elementene angående et installert program. Dialogen om har utviklet seg til et grunnleggende verktøy for brukere og utviklere.

Det er ingen riktig eller feil måte å implementere en om dialog. Nøkkelen er imidlertid at dialogboksen skal gi brukeren et øyeblikk applikasjonens tittel, versjon og en slags kontaktinformasjon. På en smarttelefon hvor det er begrenset eiendommer på skjermen, hjelper det hvis dialogen ikke bare er informativ, men også enkel og profesjonell. Smarttelefonbrukere har også kommet til å forvente berørbare "hot spots" som setter i gang handlinger som å åpne en webside eller ringe et supportnummer.

Etter å ha funnet opp hjulet så å si mens jeg kodet om dialogene for mine første par Android-apper, kom jeg til slutt opp med en fleksibel slagsform. Tilnærmingen har noen fordeler i tillegg til det konsistente utseendet og preget det gir mitt komplette tilbud av programmer. Implementeringen bruker rå tekstfiler både for den juridiske utskrifter (dvs. brukeravtalen for programvaren min) og også for standardinformasjon (dvs. tittel, versjon, etc.). Den siste filen tillater meg å bruke grunnleggende HTML-koder som formateringsattributter. Til slutt, med bare et par kodelinjer, kan jeg aktivere en rekke ting i dialogen, inkludert lansering av websider, oppringing av telefonnumre og komponering av e-post.

Denne veiledningen viser deg hvordan du oppretter en egen om dialogmal. Du kan enten følge trinnvise instruksjoner, eller laste ned hele prosjektet og importere det til Eclipse.

1. Lag et nytt Android-prosjekt i Eclipse målrettet mot SDK 1.6 eller høyere.

2. Legg til en about.xml-fil i mappen / res / layout. Oppsettet er et enkelt bord med to tekstvisninger og ett bildevisning. Merk at vi bruker strekkkolonneattributtet slik at tabellkolonnene våre tilpasser seg dynamisk til innholdet vi vil gi i råtekstfilene våre.

 about.xml 

"1.0" encoding = "utf-8" ?>

xmlns: android = "http://schemas.android.com/apk/res/android"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: stretchColumns = "*" >

 android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: src = "@ drawable / cube" android: layout_gravity = "left | center" /> 

android: id = "@ + id / info_text"

android: gravitasjon = "sentrum"
 android: layout_gravity = "center" 

android: layout_width = "fill_parent"

android: layout_height = "fill_parent" />

android: id = "id @ + / legal_text"

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"
 android: textSize = "10dip" android: textStyle = "kursiv" android: layout_span = "2" android: layout_margin = "8dip" android: textColor = "#cccccc" /> 

3. Ta med et bilde som du vil representere appen din i mappen / res / drawable. Hvis du undersøker oppsettet for about.xml, ser du at bildet mitt heter kube.png.

4. I mappen / res / layout oppgir du en standard main.xml-fil.

 main.xml 

"1.0" encoding = "utf-8" ?>

"Http://schemas.android.com/apk/res/android"

android: orientering = "vertikal"

android: layout_width = "fill_parent"

android: layout_height = "fill_parent" >

 android: layout_width = "fill_parent" android: layout_height = "wrap_content" android: text = "Dette er en enkel måte å lage en attraktiv og informativ om boks på." /> 

5. Før du går videre til kildekoden, vil du gi to tekstfiler for om-boksen. I mappen / res vil du opprette en ny katalog som heter / raw. Legg til to nye filer: legal.txt og info.txt. Disse filene kan inneholde hva du vil at dialogboksen skal vises. Malen vil tolke legal.txt som ren tekst. Når du viser innholdet i info.txt, vil koden imidlertid prøve å hedre HTML-formateringsattributter. Nedenfor ga jeg eksempelinnhold for filene for å komme i gang.

 legal.txt 

Alle rettigheter forbeholdt. Er ikke ansvarlig for skade påført

bruk av denne programvaren inkludert, men ikke begrenset til: økonomisk tap,

midlertidig lammelse, halitose, spontan forbrenning,

vegutslett, og eller for tidlig hårtap.

info.txt

Appen min

 Versjon 1.0 

Copyright 2011

www.mywebsite.com

1-800-555-1234

6. Implementeringen for AboutDialog.java-klassen inneholder en standard dialogkonstruktør, en bruksmetode for å lese rå filer og den kjente overstyringen av onCreate. I denne onCreate-metoden er det et par bemerkelsesverdige elementer. Først bruk av metoden Html.fromHtml når du setter tekstvisning som viser vårt info.txt innhold; Dette er hvordan vi kan bruke HTML-formatetiketter. Verdt å nevne er samtalen til Linkify.addLinks; dette er en hendig statisk Android-klasse som filtrerer teksten din for ting som e-postadresser, telefonnumre og nettadresser. Når et mønster gjenkjennes, endres teksten automatisk til en kobling og tilknyttes tilgjengelige intensjonsleverandører. I prøven vår over betyr dette at brukere vil kunne trykke på nettstedet eller telefonnummeret, og enheten vil svare in natur ved å gjøre "riktig" ting.

AboutDialog.Java

 pakke com.authorwjf; import java.io.BufferedReader; importer java.io.IOEksepsjon; import java.io.InputStream; import java.io.InputStreamReader; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.text.Html; import android.text.util.Linkify; 
 import android.graphics.Color; 
 import android.widget.TextView; offentlig klasse AboutDialog utvider Dialog { privat statisk kontekst mContext = null ; public AboutDialog (Context context) { super (context); 

mContext = kontekst;

/ **
 } 
 * Standard Android på opprettingsmetode som blir oppringt når aktiviteten initialiseres. 

* /

@Overstyring

public void onCreate (Bundle savedInstanceState) {setContentView (R.layout. om );
 TextView tv = (TextView) findViewById (R.id. Legal_text ); 

tv.setText ( readRawTextFile (R.raw. legal ));

tv = (TextView) findViewById (R.id. info_text );

tv.setText (Html. from HTML ) ( readRawTextFile (R.raw. info )));

tv.setLinkTextColor (Farge. HVIT );

Linkify. addLinks (tv, Linkify. ALLE );

}
 public static String readRawTextFile ( int id) { 

InputStream inputStream = mContext .getResources (). OpenRawResource (id);

InputStreamReader in = new InputStreamReader (inputStream); BufferedReader buf = new BufferedReader (inn);

Streng linje;

StringBuilder-tekst = ny StringBuilder (); prøv {
 while ((linje = buf.readLine ())! = null ) text.append (line); } fangst (IOException e) { return null ; 

}

return text.toString ();

}

}

7. Vi må lage en Main.java-fil som vil håndtere å lage en standard Android-meny og påkalle om dialog når det er nødvendig.

 Main.java- pakke com.authorwjf; import android.app.Aktivitet; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; offentlig klasse Hoved utvider aktivitet { endelig offentlig int OM = 0; 

/ ** Ringes når aktiviteten først opprettes. * /

@Overstyring

public void onCreate (Bundle savedInstanceState) { super .onCreate (savedInstanceState);

setContentView (R.layout. main );

}

offentlig boolsk onCreateOptionsMenu (Meny-meny) {

menu.add (0, OM, 0, "Om");

return true ;

}

public boolean onOptionsItemSelected (MenuItem item) { switch (item.getItemId ()) { case OM: AboutDialog about = new AboutDialog ( dette ); about.setTitle ("om denne appen");

about.show ();

pause ;
 } return true ; 

}

}

Det er ingen riktig eller feil måte å implementere en om dialog; malen som presenteres i dette innlegget, tjener meg imidlertid godt. Hvis det oppfyller dine behov, kan du gjerne legge det til i biblioteket ditt.

Figur A

Min om dialog

© Copyright 2021 | pepebotifarra.com