De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

ISensorEventListener

Verwante presentaties


Presentatie over: "ISensorEventListener"— Transcript van de presentatie:

1 ISensorEventListener
Kompas class KompasView : View , ISensorEventListener { Bitmap b; float Schaal; float Hoek; belooft methodes public KompasView(Context c) : base(c) { b = BitmapFactory.DecodeResource(...UU...); } SensorManager sm = c . GetSystemService(...); sm.RegisterListener(this, ...Orientation...); is een geldige ISensorEventListener want zijn klasse heeft deze methode public void OnSensorChanged(SensorEvent s) { } Hoek = s.Values[0]; this.Invalidate( ); }

2 want zijn klasse heeft deze methode
using Android.Locations; Kompas class KompasView : View , ILocationListener { Bitmap b; float Schaal; float Hoek; belooft methodes public KompasView(Context c) : base(c) { b = BitmapFactory.DecodeResource(...UU...); } LocationManager lm = c . GetSystemService(...); lm.RequestLocationUpdates(..., this); is een geldige ILocationListener want zijn klasse heeft deze methode public void OnLocationChanged(Location loc) { } noord = loc.Latitude; oost = loc.Longitude; }

3 Kompas using Android.Locations; belooft methodes
class KompasView : View , ILocationListener { Bitmap b; float Schaal; float Hoek; belooft methodes public KompasView(Context c) : base(c) { b = BitmapFactory.DecodeResource(...UU...); LocationManager lm = c . GetSystemService(...); Criteria crit = new Criteria(); crit.Accuracy = Accuracy.Fine; IList<string>lps = lm.GetProviders(crit,true); if ( lps != null && lps.Count>0 ) { string lp = lps[0]; lm.RequestLocationUpdates(lp,0,0,this); } } public void OnLocationChanged(Location loc) { } noord = loc.Latitude; oost = loc.Longitude; }

4 pixel van het plaatje dat in het midden moet komen
Kompas class KompasView : View , ISensorEventListener { Bitmap b; float Schaal; float Hoek; pixel van het plaatje dat in het midden moet komen protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } Schaal = this.Width / b.Width; Matrix mat = new Matrix(); mat.PostScale(Schaal, Schaal); mat.PostTranslate(–b.Width/2, –b.Height/2); mat.PostRotate(– Hoek); mat.PostTranslate(Width/2, Height/2); canv.DrawBitmap(b, mat, verf); }

5 pixel van het plaatje dat in het midden moet komen
Kaart class KaartView : View , ISensorEventListener { Bitmap b; float Schaal; float Hoek; pixel van het plaatje dat in het midden moet komen protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } Matrix mat = new Matrix(); mat.PostScale(Schaal, Schaal); mat.PostTranslate(–midx, –midy); mat.PostTranslate(Width/2, Height/2); canv.DrawBitmap(b, mat, verf); }

6 Exceptions Exception:
Uitzonderlijke toestand die door een methode wordt opgeworpen De situatie moet door de aanroeper van de methode worden opgevangen throw catch

7 Voorbeeld van Exception
kan een Exception opwerpen try { } s = invoer . Text; n = int . Parse (s); uitvoer . Text = ( "kwadraat is " + n*n ); catch ( Exception e ) { uitvoer . Text = ( s + " is geen getal" ); } opvangen van het probleem

8 Meerdere catch-delen try { s = invoer . Text; n = int . Parse (s); }
als er een Exception optreedt, wordt de eerste catch gekozen met een passend type try { } s = invoer . Text; n = int . Parse (s); uitvoer . Text = ( "kwadraat is " + n*n ); catch ( FormatException e ) { uitvoer . Text = ( s + " is geen getal" ); } catch ( OverflowException e ) { uitvoer . Text = ( s + " is te groot" ); }

9 opdracht blok return expressie ; if ( expressie ) opdracht else opdracht while ( expressie ) opdracht for ( expr ; expr ; expr ) opdracht , , declaratie foreach ( type naam in expr ) opdracht var try blok catch ( type naam ) blok

10 Syntax en semantiek Syntax: de vorm van het programma
Semantiek: wat het programma betekent compilatie eenheid using ; klasse declaratie library naam

11 Syntax van klasse-declaratie
[ attributen ] public private : naam class naam { member } attributen naam ) ( = expressie ,

12 Syntax van member member type void naam ( type naam ) blok , public
private protected override static type void naam ( type naam ) blok ,

13 Multi

14 Multi public class Multi : Activity { Button b1, b2, b3, b4, b5, b6;
protected override void OnCreate(Bundle b) { base.OnCreate(b); LinearLayout lay = new LinearLayout(this); b1 = new Button(this); b2 = new Button(this); b1.Text = "Hallo"; b2.Text = "Teller"; b1.Click += klik1; b2.Click += klik2; lay.AddView(b1); lay.AddView(b2); SetContentView(lay); } public void klik1(object o, EventArgs e) { } }

15 Dialoog Pop-up window waarin de gebruiker gegevens invoert
DatePickerDialog AlertDialog

16 DatePicker Dialog public class Multi : Activity {
Button b1, b2, b3, b4, b5, b6; DateTime GebDat; public void klik4 (object o, EventArgs e) { DatePickerDialog d; d = new DatePickerDialog(this, Gekozen); d.Show(); } public void Gekozen (object o, DatePickerDialog.DateSetEventArgs e) { this.GebDat = e.Date; b4.Text = GebDat.ToString(); } }

17 Alert Dialog public class Multi : Activity {
Button b1, b2, b3, b4, b5, b6; DateTime GebDat; public void klik6 (object o, EventArgs e) { AlertDialog.Builder d; d = new AlertDialog.Builder(this); d.SetTitle("nu al stoppen?"); d.SetPositiveButton("ja", Ja ); d.SetNegativeButton("nee", Nee ); d.Show(); } public void Ja (object o, EventArgs e) { } this.Finish( ); public void Nee (object o, EventArgs e) { } }

18 Intent Intent: bedoeling om een nieuwe activiteit te starten
eigen activiteit Hallo Teller standard web-browser text-sender

19 Intent: Hallo opstarten
public class Multi : Activity { public class Hallo : Activity { Button b1, b2, b3, b4, b5, b6; override void OnCreate(Bundle b) { base.OnCreate(b); public void klik1 (object o, EventArgs e) { TextView t = new TextView(this); Intent i; string s = Intent.GetStringExtra("wat"); i = new Intent (this, typeof(Hallo) ); t.Text = s; i.PutExtra("wat", "Hallo!!!"); SetContentView(t); } StartActivity(i); } } }

20 Intent: Teller opstarten
public class Multi : Activity { public class Teller : Activity { Button bt; int x; Button b1, b2, b3, b4, b5, b6; override void OnCreate(Bundle b) { base.OnCreate(b); int w = 0; public void klik2 (object o, EventArgs e) { bt = new Button(this); x = Intent.GetIntExtra("begin",0); Intent i; bt.Click += klik; i = new Intent (this, SetContentView(bt); typeof(Teller)); } i.PutExtra("begin", 15 ); w public void klik (object o, EA e) { } StartActivity(i); ForResult(i, 99); x = x+1; } bt.Text = $"Teller: {x}"; override void OnActivityResult (int c, Result r, Intent i) { base.OnActivityResult(c,r,i); override void Finish ( ) { Intent i = new Intent(); i.PutExtra("eind", x ); if (c==99) SetResult(Result.Ok, i ); w = i.GetIntExtra("eind",0); base.Finish( ); } } } }

21 Intent: Website opstarten
public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; public void klik3 (object o, EventArgs e) { string adres = "students.uu.nl/beta/informatiekunde"; Intent i; i = new Intent ( Intent.ActionView , Android.Net.Uri.Parse( adres ) ); StartActivity(i); } }

22 Intent: Messager opstarten
public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; public void klik5 (object o, EventArgs e) { Intent i; i = new Intent ( Intent.ActionSend ); i.SetType( "text/plain" ); string bericht = "Kom je op mijn verjaardagsfeest?"; i.SetType( Intent.ExtraText, bericht ); StartActivity(i); } }

23 Intent: Messager opstarten
public class Multi : Activity { Button b1, b2, b3, b4, b5, b6; DateTime GebDat; public void klik5 (object o, EventArgs e) { Intent i; i = new Intent ( Intent.ActionSend ); i.SetType( "text/plain" ); TimeSpan tijd = DateTime.Now – GebDat; int dagenOud = (int) tijd.TotalDays( ); int nachtjes = – dagenOud % 1000; DateTime feestDag = DateTime.Now + TimeSpan(nachtjes, 0,0,0); string bericht = "Op {feestdag} is mijn verKdagdag. Kom je ook?"; i.SetType( Intent.ExtraText, bericht ); StartActivity(i); } }

24 Kijk wel uit waar je het post...


Download ppt "ISensorEventListener"

Verwante presentaties


Ads door Google