Java code onderdelen. Variabelen. Constanten. Android Java code onderdelen 1/7

Vergelijkbare documenten
Een fragment wordt afgeleid van de basis klasse "Fragment".

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

ListView Spinner Button TextView EditText Radiogroup GridView ViewPager Tabbladen...

Deeltentamen Grammatica s en ontleden 22 december 2005

Ingebouwde klassen & methodes

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Kwis (3) class X { public void a() { System.out.println("x"); public static void main(string[] args) { X x = new X();

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Programmeren 1 20 januari 2012 Prof. T. Schrijvers

Zelftest Programmeren in Java

Variabelen en statements in ActionScript

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Programmeren in Java les 3

APPLICATIEBOUW 3E COLLEGE: OBJECT GEORIËNTEERD PROGRAMMEREN, METHODEN, PARAMETERS, SCOPE VAN VARIABELEN. Onderdeel van SmartProducts

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Vakgroep CW KAHO Sint-Lieven

Uitwerking Tweede deeltentamen Imperatief programmeren - versie 1 Vrijdag 21 oktober 2016, uur


Modelleren en Programmeren

Javascript oefenblad 1

Overerving & Polymorfisme

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

Tentamen Imperatief Programmeren

NAAM: Programmeren 1 Examen 21/01/2011

Uitwerkingen Tweede deeltentamen Imperatief programmeren Vrijdag 15 oktober 2010, uur

NAAM: Programmeren 1 Examen 29/08/2012

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Versie 2: B C D D A C D A C C. Versie 3: C D A A B D A B D D. Versie 4: A D C C B D C B D D. Versie 5: B A D D C A D C A A

Modelleren en Programmeren

Syntax- (compile), runtime- en logische fouten Binaire operatoren

IMP Uitwerking week 13

Hoofdstuk 0. Van Python tot Java.

Modelleren en Programmeren

Programmeren in Java 3

Modelleren en Programmeren

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

NAAM: Programmeren 1 Examen 31/08/2011

Objectgericht programmeren 1.

Programmeren 1 23 januari 2013 Prof. T. Schrijvers

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

public Paneel() { knop = new JButton( Klik ); knop.addactionlistener( new KnopHandler() ); tekstvak = new JTextField(10); add(knop); add(tekstvak);

Aanvullende toets Mobiel programmeren - versie 1 Woensdag 23 maart 2016, uur

VAN HET PROGRAMMEREN. Inleiding

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Programmeren met Arduino-software

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Uitwerking Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 2 februari 2018, uur

Tweede deeltentamen Mobiel programmeren - versie 1 Vrijdag 3 februari 2017, uur

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

Lessen Java: Reeks pag. 1

Modelleren en Programmeren

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Veel succes! 1. Gegeven is de volgende klasse:

Java. Basissyllabus. Egon Pas

Java Les 3 Theorie Herhaal structuren

Modelleren en Programmeren

Java spiekbrief. Commentaar. Definitie van een methode. Types. Variabelendeclaratie. Definitie van een klasse. Namen. Definitie van een veld

Tentamen Inleiding Programmeren (IN1608WI), duur van de toets 2 uur Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Objectgericht programmeren 1.

Game of Life in Java

Uitwerking Eerste deeltentamen Mobiel programmeren - versie 1 Vrijdag 23 december 2016, uur

Programmeermethoden NA. Week 5: Functies (vervolg)

Scala. Korte introductie. Sylvia Stuurman

programmeren Mobiel Mobilofoon 1960 Apple iphone 2007 met ios Nokia Samsung S met Android Motorola Dyna-Tac 1973

Veel succes! 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan al genoeg zijn.

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, uur

Modulewijzer Tirdat01

VI. Klassen en objecten

Modelleren en Programmeren

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

eerste voorbeelden in Java

SPOJ oplossingen Gilles Callebaut 7 augustus 2015

Kleine cursus PHP5. Auteur: Raymond Moesker

Katholieke Hogeschool Kempen ASP

BEGINNER JAVA Inhoudsopgave

Zelftest Inleiding Programmeren

Inhoud. VBA Excel 2010

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Programmeren (1) Examen NAAM:

Objectgeoriënteerd programmeren in Java 1

Modelleren en Programmeren: Prolog

In de tweede regel plaatsen we in het gereserveerde stukje geheugen een getal.

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Hoofdstuk 9.4. Letterfrequentie turven

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

Programmeermethoden NA. Week 5: Functies (vervolg)

import java.io.*; één klasse public class Hallo { public static void main (String[] a) ...met één functie System.out.println("Hallo!

Datastructuren Werkcollege Intro

Robocode. Inleiding tot programmeren

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Transcriptie:

Android Java code onderdelen 1/7 Java code onderdelen Variabelen Java maakt zoals elke programmeertaal gebruik van variabelen. Variabelen zijn geheugenplaatsen waarvan de inhoud kan gewijzigd worden. Je kan op verschillende plaatsen in de Java code deze variabelen gebruiken: in een klasse of in functies. Met het woord "private" geef je aan dat de inhoud van deze variabelen bereikbaar is binnen die klasse maar niet van buitenaf. In functies moet je het woord "private" niet gebruiken. Deze variabelen zijn enkel bereikbaar binnen die functie. Voor elke variabele moet je het datatype opgeven van de inhoud. Je kan kiezen uit zeer veel mogelijkheden. Deze datatypes zijn gekoppeld aan een bibliotheek (zie hieronder bij "imports"). Met het woord "final" geef je aan dat de inhoud van de variabele niet meer wijzigt nadat er een waarde is aan toegekend. Je kan bij de declaratie van variabelen er reeds een inhoud aan toekennen (initialiseren). Hoewel niet verplicht is het aan te raden de variabelen een goede naam te geven. Een voorvoegsel gebruiken waarvan het datatype kan afgeleid worden maakt jouw Java code beter leesbaar. private ListView lvitems; private ArrayList<String> lvstrings = new ArrayList<String>(); private ArrayAdapter<String> lvadapter; private Spinner spitems; private ArrayList<String> spstrings = new ArrayList<String>(); private ArrayAdapter<String> spadapter; private CalendarView cal1; private Button btn1; private Button btn2; private CharSequence mdrawertitle; private CharSequence mtitle; private String[] mfragmenttitles; private Long rowid; private EditText ettitel; private DBHelper objdbhelper; final String mtitle = appfolder; String etinput = input.gettext().tostring(); FileWriter writer; SQLiteDatabase db = this.getwritabledatabase(); ContentValues values = new ContentValues(); Constanten Een constante is een geheugenplaats waarvan de inhoud niet meer wijzigt nadat er een waarde is ingestopt.

2/7 Android Java code onderdelen Je kan de "scope" (bereikbaarheid) aangeven door het woord "private" of "public". Publieke constanten zijn in meerdere functies van de klasse te gebruiken. private static String url_lijst = "http://domein.be/.../lijst.php"; private static final String TAG_SUCCESS = "success"; public static final String FLD_NOTA_TITEL = "titel"; Imports Voor elk onderdeel in jouw Java code moet je een bibliotheek importeren. Als je een onderdeel voor de eerste keer gebruikt zal dit in de editor in het rood aangeduid worden. Klik je erop en gebruik je de toets combinatie Alt+Enter dan wordt de juiste "import" automatisch toegevoegd in de lijst. import android.app.activity; import android.support.v7.app.actionbaractivity; import android.support.v7.app.actionbar; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.os.build; import android.os.bundle; import android.view.gravity; import android.view.layoutinflater; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.viewgroup; import android.support.v4.widget.drawerlayout; import android.widget.arrayadapter; import android.widget.textview; import java.util.arraylist; import java.util.list; import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqliteopenhelper; import java.io.file; import java.io.filewriter; import java.io.ioexception; import android.app.alertdialog; import android.os.asynctask; import android.widget.button; import android.widget.edittext; import android.widget.listview; import android.widget.spinner; import android.widget.toast; If ( ) { else { Om de inhoud van variabelen te testen op een bepaalde waarde kan je het "if" statement gebruiken. Tussen de ronde haakjes kan je de voorwaarde(n) plaatsen. Met de operator "==" test je of de inhoud gelijk is aan een bepaalde waarde. Uiteraard kan je ook andere operatoren gebruiken (bvb. >, <, <=, >=,!=, enz ) Met een logische operator kan je meerdere testen samenvoegen.

Android Java code onderdelen 3/7 Als het resultaat van de voorwaarde "waar" ("true") is zal het gedeelte tussen de accolades uitgevoerd worden. Is het resultaat "onwaar" ("false") en er is een "else" gedeelte aanwezig dan zal de code tussen de accolades van het "else" gedeelte uitgevoerd worden. if (etinput == null etinput.trim().length() == 0) { etinput = appfolder; Let op: voor een String variabele moet je de methode "equals" gebruiken om de inhoud te testen (en dus niet de operator "==")!!! if (success.equals("1")) { new notaupdate().execute(); else { new notainsert().execute(); Switch ( ) { case : case : default: Als je de inhoud van een variabele met meerdere mogelijke waarden wil testen kan je gebruik maken van het "switch" statement. Voor elke mogelijke waarde voorzie je een "case" blok. Achter de dubbelepunt (":") komen de regels die moeten uitgevoerd worden. In Android krijgt elk onderdeel automatisch een uniek nummer toegekend. Deze nummers worden verzameld in de klasse "R" en in verschillende subklassen zoals bvb. "drawable", "id", "layout", "menu", "string", "style". Android Studio genereert deze nummers voor je. switch(item.getitemid()) { case R.id.menu_settings: //startactivity(new Intent(this, Preferences.class)); return true; case R.id.menu_endapp: finish(); return true; case android.r.id.home: Intent intent = new Intent(this, MainActivity.class); intent.addflags(intent.flag_activity_clear_top); startactivity(intent); default: return super.onoptionsitemselected(item); In het "default" gedeelte wordt de code uitgevoerd als geen van de andere testen "waar" zijn. switch (number) { case 1: mtitle = getstring(r.string.zoeken); case 2: mtitle = getstring(r.string.scholen); case 3: mtitle = getstring(r.string.lokalen);

4/7 Android Java code onderdelen Als je meer dan 2 testen moet doen is het aangeraden om een "switch" statement te gebruiken. For ( ; ; ) Met het "for" statement kan je een lus-structuur maken. Je geeft de startwaarde, de eindwaarde en de verhoging op tussen de ronde haakjes. De code tussen de accolades wordt herhaald volgens de waarden die zijn opgegeven tussen de ronde haakjes. Dit statement wordt gebruikt als je op voorhand weet hoeveel keer een code blok moet uitgevoerd worden. for(int i = 0; i < tekstlen; i++) { char kar1 = tekst.charat(i); int asc1 = (int) kar1; int ascres; res = res + Character.toString ((char) ascres); For ( : ) Met het "for-each" statement kan je een code blok laten uitvoeren voor elk onderdeel van een collectie. In het voorbeeld wordt de "titel" en de "id" van elke "nota" van de "notas" collectie toegevoegd aan een array. for (Nota nota : notas) { notasarray.add(nota.gettitel()); notasids.add(string.valueof(nota.getid())); While ( ) { Zolang aan de voorwaarde die tussen de ronde haakjes staat is voldaan zullen de instructies tussen de accolades uitgevoerd worden. while((read = in.read(buffer))!= -1){ out.write(buffer, 0, read); Bij het inlezen van een tekst lijn per lijn kan je testen of de ingelezen lijn nog bestaat met de voorwaarde "!= null" (niet gelijk aan de waarde "null"). while (myline!= null) { if (myline.contains(";")) { String paknaam = myline.substring(myline.indexof(";")+1); String titel = myline.substring(0,myline.indexof(";")-1); titelstrings.add(titel); packagestrings.add(paknaam); myline = reader.readline();

Android Java code onderdelen 5/7 Do { while ( ) De instructies tussen de accolades worden uitgevoerd zolang er aan de voorwaarde tussen de ronde haakjes is voldaan. do { Nota nota = new Nota(); nota.setid(long.parselong(cursor.getstring(0))); nota.settitel(cursor.getstring(1)); nota.settekst(cursor.getstring(2)); notalist.add(nota); while (cursor.movetonext()); Functies Je kan een functie maken door de "scope" aan te geven: "public" of "private". Daarna geef je het datatype op van de terugkeerwaarde (return value). Dit kan "void" (leeg) zijn als er geen waarde moet teruggegeven worden aan het einde van de functie. Als er toch een datatype is opgegeven dan moet er een return statement in de functie staan met daarachter een variabele of waarde van het juiste datatype. public NotasFragment() { @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); sethasoptionsmenu(true); @Override public View oncreateview(layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) { return inflater.inflate(r.layout.fragment_notas, container, false); public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); catch (Exception e) { Toast.makeText(getActivity(), e.tostring(), Toast.LENGTH_SHORT).show(); Je kan ook eigen functies maken. Tussen de ronde haakjes kan je argumenten (parameters) meegeven indien nodig. public void leegmaken_velden() { ettitel.settext(""); ettekst.settext(""); ettitel.requestfocus(); rowid = (long) 0; public boolean existsactiviteit(string naam) { String selectquery = "SELECT * FROM " + TABLE_ACTIVITEITEN + " WHERE naam='" + naam + "'"; SQLiteDatabase db = this.getreadabledatabase(); Cursor cursor = db.rawquery(selectquery, null); if (cursor.getcount() > 0) {

6/7 Android Java code onderdelen return true; cursor.close(); db.close(); return false; public void haalrecord(string id) { rowid = id; new tabelselect().execute(); Try { catch (Exception e) { Als je niet zeker bent dat de instructies die je geschreven hebt goed zullen uitgevoerd worden kan je de instructies in een "try"-"catch" blok zetten. Als er in het "try" gedeelte een fout optreedt tijdens de uitvoering dan zal het programma verdergaan in het gepaste "catch" gedeelte en de fout registreren of tonen. catch (UnsupportedEncodingException e) { catch (ClientProtocolException e) { catch (IOException e) { catch (Exception e) { Log.e("Get content", "Error = " + e.tostring()); Multi-threading Je kan een stukje programma in de achtergrond laten uitvoeren met een "AsyncTask". De instructies in die klasse zullen in een aparte thread van het Android besturingssysteem uitgevoerd worden. In een "AsyncTask" moeten 3 functies (methodes) aanwezig zijn: onpreexecute(), doinbackground() en onpostexecute(). class tabelselect extends AsyncTask<String, String, String> { @Override protected void onpreexecute() { super.onpreexecute(); protected String doinbackground(string... args) { List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("LokaalID", rowid)); JSONObject json = jparser.makehttprequest(url_select, "POST", params); Log.d("Select: ", json.tostring());

Android Java code onderdelen 7/7 int success = json.getint(tag_success); if (success == 1) { JSONArray LokaalObj = json.getjsonarray(tag_tabel); jobjtabel = LokaalObj.getJSONObject(0); else { // geen record catch (JSONException e) { return null; protected void onpostexecute(string file_url) { if (jobjtabel!= null) { getactivity().runonuithread(new Runnable() { public void run() { etlokaalnaam = (EditText) getactivity().findviewbyid(r.id.et_lokaalnaam); etlokaalindelingurl = (EditText) getactivity().findviewbyid(r.id.et_lokaalindelingurl); etlokaalnaam.settext( jobjtabel.getstring(tag_lokaalnaam)); etlokaalindelingurl.settext( jobjtabel.getstring(tag_lokaalindelingurl)); catch (JSONException e) { ); Met de functie runonuithread() van de activiteit kan je de resultaten van de AsyncTask functie doinbackground() gebruiken om bvb. tekstvakken in te vullen.