Naar content
Trending apps
  • Google Duo: videogesprekken van hoge kwaliteit

  • Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger: gratis sms'en en videobellen

Trending games
  • Fortnite

  • Minecraft Earth

  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

Trending smartphones
  • Samsung Galaxy Note 20 Ultra

  • Google Pixel 4a

  • OnePlus Nord

  • Samsung Galaxy A51

  • Poco F2 Pro

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

Artesis

Artesis

  • Lid sinds 05 mei 2012
  • Berichten 31
  • Reputatie 0
  • #1
  • 17 mei 2013
  • 11:45

public int aantal
Dit begrijp ik. Een variabele genaamd van het type integer is algemeen aanwezig.

Cursor cursor = getContacts();
Deze wordt al een stuk moeilijker voor me.
Ik denk dat “Cursor” gelijk is aan het type dat door de methode getContacts wordt terug gegeven. Is dat juist?

private Cursor getContacts() {}
Deze begrijp ik al helemaal niet meer.
Wat doet “Cursor” hier?

Bewerkt (21 mei 2013 10:04)
Ippe_Ziepe

Ippe_Ziepe

  • Lid sinds 31 maart 2009
  • Berichten 297
  • Reputatie 0
  • #2
  • 17 mei 2013
  • 14:02

private Cursor getContacts() { … } is een functie. Private = deze functie kan alleen worden benaderd binnen dezelfde klasse, Cursor = wat de functie ‘teruggeeft’ en de functie heet getContacts. De functie wil geen parameters krijgen, dus (). Anders zou er bijvoorbeeld staan: getContacts(Person person). Tussen de {} wordt de functie beschreven.
Sommige variabelen zijn zo standaard dat ze overal kunnen worden gebruikt: int, double, float, boolean, String (met een hoofdletter), char etc. etc.
Als je getContacts aanroept, krijg je dus een Cursor-object terug. Dus met Cursor cursor = getContacts(); krijg je een Cursor. Wat dat verder voor object is, weet ik ook niet. Als je bijvoorbeeld eclipse gebruikt, kun je na deze regel intikken: cursor. (met punt) zodat een lijstje verschijnt met de functies die je op Cursor kunt aanroepen.
Misschien is het handig om een Java-cursusje op te zoeken op internet. De meeste zijn wel gratis.

Bewerkt (21 mei 2013 10:04)
Artesis

Artesis

  • Lid sinds 05 mei 2012
  • Berichten 31
  • Reputatie 0
  • #3
  • 17 mei 2013
  • 14:22

Ik lees me de afgelopen maanden een slag in het rond waar het cursusjes Java betreft.
Daar leer ik veel maar sommige dingen die de beeldvorming op gang moeten brengen haal ik er soms niet uit.
Jouw uitleg is een goed begin maar:

Dat er een object terug gegeven wordt begrijp ik.
Maar waarom staat er Cursor cursor = … en niet cursor = …?
In mijn beleving krijgt cursor de return terug (een object dus) en geeft Cursor eeeh, dat weet ik dus niet.

Bewerkt (21 mei 2013 10:04)
Ippe_Ziepe

Ippe_Ziepe

  • Lid sinds 31 maart 2009
  • Berichten 297
  • Reputatie 0
  • #4
  • 17 mei 2013
  • 14:39

Ahaa, ok. Er staat Cursor cursor = …, maar er had ook kunnen staan: Cursor myWonderfulCursor = … of Cursor hopsakee = …

Net als ‘int myAge = 30’ eigenlijk: je ‘maakt’ iets van de klasse “Cursor” en die noem je “cursor”. Vervolgens kun je “cursor” gebruiken om die ene Cursor aan te wijzen. Je kunt ook 2 Cursors aanmaken. Of 100.

Cursor cursor = new Cursor(); // of getContacts();
Cursor cursor2 = new Cursor();
System.out.println(cursor.toString()); // print naar console wat cursor ook maar moge zeggen over zichzelf
System.out.println(cursor2.toString());


Succes!

———- Update van bericht ———-

Misschien nog ietsje meer uitleggen: eerst bestaat er nog geen Cursorobject. Alleen de klasse Cursor is ergens gedefinieerd:

public class Cursor {
··private String name;
··public Cursor(String name) {
····// dit wordt aangeroepen als iemand een Cursorobject wil maken
····this.name = name;
··}

··public String getName() {
····return “I'm a Cursor! My name is ” + name;
··}
}

Vanuit andere code kun je een instantie maken van een cursor. Tot nu toe hebben we alleen nog een klasse; een soort template, of mal.

Cursor cursor = new Cursor(“First Cursor!”); zorgt ervoor dat er een instantie wordt gemaakt waar je iets mee kunt.
Omdat de computer nu weet dat ‘cursor’ een ding is van type Cursor, hoef je hierna niet steeds meer Cursor cursor te zeggen, alleen ‘cursor’ is genoeg. Nu kunnen we dus dingen aanroepen op die cursor:

System.out.println(cursor.getName()); // I'm a Cursor! My name is First Cursor!

String deNaamVanDieEneCursor = cursor.getName();
System.out.println(deNaamVanDieEneCursor); // I'm a Cursor! My name is First Cursor!

Hopelijk kun je hier iets mee.

Bewerkt (21 mei 2013 10:04)
Artesis

Artesis

  • Lid sinds 05 mei 2012
  • Berichten 31
  • Reputatie 0
  • #5
  • 17 mei 2013
  • 15:38

Ok de rook begint op te trekken. thx.

Even zoals ik het nu zie en corrigeer me als ik het fout heb.

import android.database.Cursor; // hiermee haal ik de class Cursor binnen

Cursor cursor = getContacts(); hiermee roep ik mijn zelfgemaakt functie getContacts aan.

Doordat de class Cursor binnengehaald is (bestaat) kan ik hem gebruiken.
Dat ik er een instantie “cursor” van wil maken geef ik aan met “Cursor”.

Zo gezegd is het heel eenvoudig maar als je het beeld niet hebt niet

Bewerkt (21 mei 2013 10:04)
Ippe_Ziepe

Ippe_Ziepe

  • Lid sinds 31 maart 2009
  • Berichten 297
  • Reputatie 0
  • #6
  • 17 mei 2013
  • 16:28

Ja precies. Die import moet wel bovenaan staan. Meestal begint een file zo:

package nl.androidworld.cursordemo;

import Android.database.Cursor;

public class CursorDemo {
··public CursorDemo() {
····// enzovoort

Bewerkt (21 mei 2013 10:04)
Artesis

Artesis

  • Lid sinds 05 mei 2012
  • Berichten 31
  • Reputatie 0
  • #7
  • 17 mei 2013
  • 17:30

Ja jammer denk ik het een beetje te volgen krijg ik deze zin te zien:
SimpleCursorAdapter adapter = new SimpleCursorAdapter(…)

Net hadden we besproken dat “adapter” in dit geval een nieuw object op basis van SimpleCursorAdapter zou worden.
Vanuit die redenatie begrijp ik dus niet waarom hier dan achter = new SimpleAdapter staat.
Dat lijkt mij dan dubbel maar dat is het waarschijnlijk niet dus snap ik het weer niet

Bewerkt (21 mei 2013 10:05)

Reageer

Om te reageren, dien je te zijn ingelogd. Druk op de onderstaande knop om in te loggen of maak een nieuwe account aan.

Inloggen Registreren