Een Android app

Door Koen Vlaswinkel, 6 jaar geleden, 38.201x bekeken

In deze tutorial gaan we een native Android app maken. Dit zullen we doen met PHP voor het genereren van de data en met Java en XML voor het maken van de Android app. We zullen JSON als dataformaat gebruiken, dus lees eerst mijn JSON tutorial door. Er is geen kennis van Android/Java vereist, maar ik verwacht wel dat je wat van PHP afweet. Ik zal in dit simpele voorbeeld geen dynamische data (lees: database) gebruiken om te kunnen concentreren op de app. Als data zal ik een verzonnen nieuwsfeed gebruiken. Alle code is te vinden in de GitHub repo.

Gesponsorde koppelingen

Inhoudsopgave

  1. Het serverside gedeelte
  2. Installatie Android SDK
  3. Een eerste start
  4. De layout
  5. Zorgen voor een lijstvuller
  6. De lijst vullen
  7. Verbinding met internet
  8. Dat was het

 

Er zijn 17 reacties op 'Een android app'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


6 jaar geleden
 
Koen Hollander
Koen Hollander
6 jaar geleden
 
0 +1 -1 -1
Als ik een APK wil maken dan vraagt hij bij mij altijd om certificering. Weet jij daar wat meer van?
Koen Vlaswinkel
Koen Vlaswinkel
6 jaar geleden
 
Ja, dat is nodig als je een APK wil maken. Dit heb je niet nodig als je hem alleen probeert te runnen, zoals je doet vanuit Eclipse, dat gaat in debug-modus (dus met een debug-certificaat). Als je hem wilt publiceren heb je wel een certificaat nodig, dan adviseer ik je dan ook om Signing your applications door te lezen.
Opolo Webdesign
Opolo Webdesign
6 jaar geleden
 
Mooie tut, maar voor de gemiddelde bezoeker van deze site lijkt me Phonegap of XDK meer geschikt.


6 jaar geleden
 
0 +1 -0 -1
Koen,

Weet jij toevallig een handige tutorial van Java en een tutorial voor een Login systeem, Registratie etc.?
Koen Vlaswinkel
Koen Vlaswinkel
6 jaar geleden
 
0 +1 -0 -1
Voor Java tutorials kan je het beste op de site van Oracle zelf zijn. Als je een login systeem, registratie enz. wilt, adviseer ik je om een backend te maken in PHP en met deze te verbinden zoals ik ook heb gedaan in Verbinding met internet. Als je dan Android Asynchronous Http Client gebruikt, kan je data versturen naar de server, en natuurlijk ook ontvangen.


6 jaar geleden
 
0 +1 -0 -1
Bedankt, ik ga ernaar kijken.
Php knipper
php knipper
6 jaar geleden
 
0 +1 -0 -1
Ik heb je stappen gedaan (wilden eens proberen) maar als ik nu mijn internet uitzet en ik open de app dan krijg ik een melding "deze app is vastgelopen".

ps. is het mogelijk om in die lijst een foto te krijgen?


6 jaar geleden
 
0 +1 -0 -1
De App maakt connectie met Internet. Hiervoor zul je dus een foutenafhandeling moeten hebben indien je de app wilt bekijken zonder internet.
Koen Vlaswinkel
Koen Vlaswinkel
6 jaar geleden
 
0 +1 -0 -1
Als het goed is loopt de app niet vast als er geen internet is, hij zou dan een foutmelding moeten geven in een toast.

Afbeeldingen in een lijst krijgen is mogelijk met een ImageView, ik denk dat er genoeg over te vinden is op internet.
Koen Vlaswinkel
Koen Vlaswinkel
6 jaar geleden
 
Als het goed is loopt de app niet vast als er geen internet is, hij zou dan een foutmelding moeten geven in een toast.

Afbeeldingen in een lijst krijgen is mogelijk met een ImageView, ik denk dat er genoeg over te vinden is op internet.
Php knipper
php knipper
6 jaar geleden
 
@Koen

Sorry, ik kan het niet vinden, het zou blijkbaar een heel stuk moeilijker zijn dan dat hier beschreven staat.

Ps. Ik maak de app voor 2.1 kan dat de verbindingsfout geven?
Dick Tol
Dick Tol
6 jaar geleden
 
Kan ik een traditioneel opgebouwde site in PHP met SELECT- en INSERT-query's in deze app verwerken?
Koen Vlaswinkel
Koen Vlaswinkel
6 jaar geleden
 
@Dick Tol: Dat kan, maar dan zul je een API moeten bouwen die bijvoorbeeld werkt met JSON, daarvoor kan je mijn JSON tutorial gebruiken.
Lennart faber
lennart faber
6 jaar geleden
 
0 +1 -0 -1
In de nieuwe eclipse maak je standaard gebruik van een fragment activity, en hierdoor lijkt de app direct te crashen door de regel this.listView.setAdapter(this.adapter);
Zonder deze regel start de app wel, maar is er uiteraard niks te zien. Hoe krijg je dit werkend met het nieuwe fragment systeem?
Lano Heeren
Lano Heeren
5 jaar geleden
 
0 +1 -0 -1
Hoi,
Ben bezig met de app, maar krijg foutmeldingen in de maincativity.java, zie code hier onder. wat doe ik fout?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package test1.sint;


import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {
    // Onze list
    private ListView listView;// hier begint de fout
    // Onze artikelen
    private ArrayList<Article> articles;
    // Onze adapter
    private ArticleAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Zorg voor de goede layout
        setContentView(R.layout.activity_main);
        // Dit gedeelte is nieuw
        // We willen een reference naar onze list vanuit onze layout
        this.listView = (ListView) this.findViewById(R.id.listView1);

        // We initialiseren eerst onze lijst van artikelen
        this.articles = new ArrayList<Article>();
        // Dan maken we daarmee onze adapter
        this.adapter = new ArticleAdapter(this, articles);
        // En dan zeggen we tegen de list dat onze adapter hem moet helpen :)
        this.listView.setAdapter(this.adapter);
        this.articles.add(new Article(2, "Mijn leven", "Lorem ipsum dolor sir amet", "mijn-leven"));
        this.articles.add(new Article(1, "Welkom", "Dit is een artikel", "welkom")); // tot hier gaat het fout
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
    

}
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
R L
R L
4 jaar geleden
 
0 +1 -0 -1
ik wou het ff proberen maar krijg bij 1. Het serverside gedeelte

al een error
{"error":"SQLSTATE[HY000] [2002] Kan geen verbinding maken omdat de doelcomputer de verbinding actief heeft geweigerd.\r\n"}

denk dat ik de sql een verkerde naam heb gegeven welke moet deze hebben

Om te reageren heb je een account nodig en je moet ingelogd zijn.

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.