View unanswered posts | View active topics It is currently 21 Aug 2017, 16:42



Reply to topic  [ 14 posts ]  Go to page 1, 2  Next
 Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων 
Author Message
Site Admin
User avatar

Joined: 24 May 2008, 23:50
Posts: 626
Location: Athens
Post Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
Θα φτιάξουμε μια απλή εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων.
Image
Όπως βλέπουμε και στην εικόνα η εφαρμογή μας αποτελείτε:
απο ενα πεδίο κειμένου με το κείμενο:"Label:" που βρίσκεται πάνω αριστερα
ενα πεδίο εισαγωγής κειμένου που βρίσκεται απο κάτω και καταλαμβάνει όλο το μάκρος της οθόνης
ενα κουμπί με το όνομα Cancel και ένα με το όνομα OK που βρίσκονται δεξιά.

Σκοπός της εφαρμογής είναι ανάλογα με το κουμπί που θα πατάμε να εμφανίζεται το κατάλληλο κείμενο.

Δίπλα στον κώδικα θα βλέπετε τα σχόλια με το τι κάνει κάθε γραμμή. Ολοκληρωμένο τον κώδικα χωρίς τα σχόλια μπορείτε να τον βρείτε στο τέλος.

Στην αρχή σχεδιάζουμε το layout απο το αρχείο main.xml.
main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" //Δηλώνουμε οτι θα κάνουμε χρήση του Relative Layout.
android:layout_width="fill_parent" //Το οποίο θα καταλαμβάνει όλο το πλάτος
android:layout_height="wrap_content" //Και θα αλλάζει δυναμικά ύψος όσο τα δεδομένα που περιέχει
android:padding="10px"> //Με κενό 10 pixel.

<TextView android:id="@+id/label" //Δημιουργούμε ένα TextView για το "label" και του δίνουμε το id: label
android:layout_width="fill_parent" //Το οποίο θα καταλαμβάνει όλο το πλάτος
android:layout_height="wrap_content" //Και θα αλλάζει δυναμικά ύψος όσο τα δεδομένα που περιέχει
android:text="Label:"/> //Το κείμενο που θα εμφανίζει θα είναι "Label"

<EditText android:id="@+id/entry" //Δημιουργούμε ενα EditText που θα εμφανίζει το κείμενο μας και του δίνουμε το id: entry
android:layout_width="fill_parent" //Το οποίο θα καταλαμβάνει όλο το πλάτος
android:layout_height="wrap_content" //Και θα αλλάζει δυναμικά ύψος όσο τα δεδομένα που περιέχει
android:background="@android:drawable/editbox_background" //Θα έχει σαν background το όρισμα που του δίνουμε
android:layout_below="@id/label" //Θα τοποθετηθεί ΚΑΤΩ απο το αντικείμενο με id: label.
android:editable="false" //Δεν μπορούμε να γράψουμε πάνω του
android:textAlign="center"/> //Η διάταξη του κειμένου είναι στο κέντρο


<Button android:id="@+id/ok" //Δημιουργούμε ενα Button που θα εμφανίζει το κουμπί OK και του δίνουμε το id: ok
android:layout_width="wrap_content" //Θα έχει πλάτος όσο τα δεδομένα του
android:layout_height="wrap_content" //Το ίδιο και για το ύψος
android:layout_below="@id/entry" //Θα βρίσκεται κάτω απο το αντικείμενο με id: entry
android:layout_alignParentRight="true" //Θα τοποθετείται δεξιά στην οθόνη
android:layout_marginLeft="10px" //Με κενό 10 pixel
android:text="OK" /> //Το κείμενο του κουμπιού θα είναι OK

<Button android:id="@+id/cancel" //Δημιουργούμε ενα Button που θα εμφανίζει το κουμπί Cancel και του δίνουμε το id: cancel
android:layout_width="wrap_content" //Θα έχει πλάτος όσο τα δεδομένα του
android:layout_height="wrap_content" //Το ίδιο και για το ύψος
android:layout_toLeft="@id/ok" //Θα βρίσκεται αριστερά απο το αντικείμενο με id: ok
android:layout_alignTop="@id/ok" //Θα βρίσκεται στο ίδιο ύψος με το αντικείμενο με id: ok
android:text="Cancel" /> //Το κείμενο του κουμπιού θα είναι Cancel
</RelativeLayout>

Έτοιμο το layout! Αν το τρέξετε (με τον κώδικα που δημιουργεί το Eclipse αυτόματα) θα σας εμφανίσει τα στοιχεία τα οποία όμως δεν θα κάνουν κάτι προς το παρόν.

Καιρός να προσθέσουμε λειτουργικότητα στα στοιχεία της εφαρμογής.

Test.java
package gr.androiddev;
import android.app.Activity;
import android.os.Bundle; //Κάνουμε τα απαραίτητα imports
import android.widget.Button;
import android.widget.EditText;
import android.view.*;
public class Test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main); //Λέμε στο Android να εμφανίσει το layout main.xml που δημιουργήσαμε πριν.
Button b1 = (Button) findViewById(R.id.ok); //Δηλώνουμε ενα κουμπί και δίνουμε το id του, το ίδιο που έχουμε στο main.xml
b1.setOnClickListener(new View.OnClickListener() { //Δημιουργούμε έναν OnClickListener ώστε να μπορούμε να χειριστούμε το γεγονός click.
public void onClick(View arg0) { //Όταν το κουμπί πατηθεί κάνε τα εξής:
EditText et = (EditText) findViewById(R.id.entry); //Δηλώνουμε το EditText και βάζουμε το id που έχουμε στο main.xml
et.setText("You pressed OK"); //Θέσε στο EditText το κείμενο "You pressed OK"
}
}); //Το ίδιο ακριβώς κάνουμε και για το δεύτερο κουμπί
Button b2 = (Button) findViewById(R.id.cancel);
b2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
EditText et = (EditText) findViewById(R.id.entry);
et.setText("You pressed Cancel");
}
});
}
}

Έτοιμο!

Ορίστε ο πλήρης κώδικας χωρίς τα σχόλια:
main.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:padding="10px">

    <TextView android:id="@+id/label"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:text="Label:"/>

    <EditText android:id="@+id/entry"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:background="@android:drawable/editbox_background"
              android:layout_below="@id/label"
              android:editable="false"
              android:textAlign="center"/>
             
 
    <Button android:id="@+id/ok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/entry"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="10px"
            android:text="OK" />

    <Button android:id="@+id/cancel"
          android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeft="@id/ok"
            android:layout_alignTop="@id/ok"
            android:text="Cancel" />
</RelativeLayout>


Test.java
Code:
package gr.androiddev;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.view.*;
public class Test extends Activity {
    /** Called when the activity is first created. */
   @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        Button b1 = (Button) findViewById(R.id.ok);
        b1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
               EditText et = (EditText) findViewById(R.id.entry);
               et.setText("You pressed OK");
                }
             });
        Button b2 = (Button) findViewById(R.id.cancel);
        b2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View arg0) {
               EditText et = (EditText) findViewById(R.id.entry);
               et.setText("You pressed Cancel");
                }
             });
    }
}

_________________
Chief Software Engineer @ PinApps.com
Κωνσταντίνος Πολυχρόνης http://www.kospol.gr
Πρόσθεσε την εφαρμογή σου: http://greekandroidapps.gr/


01 Jul 2008, 15:41
Profile WWW

Joined: 30 Nov 2008, 21:28
Posts: 15
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
Πολύ καλό ποστ!
Είχε πολύ δουλειά και με βοήθησε πολύ.

Περισσότερα layout options βρήκα εδώ

_________________
My Website


11 May 2009, 19:57
Profile
Site Admin
User avatar

Joined: 24 May 2008, 23:50
Posts: 626
Location: Athens
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
θα ανεβάσουμε στο site και το workshop απο την παρουσίαση στην fosscomm που εξηγώ αναλυτικά τα layouts.

προς το παρόν μπορείτε να δείτε τις παρουσιάσεις εδώ:
http://ventrix24.blogspot.com/

_________________
Chief Software Engineer @ PinApps.com
Κωνσταντίνος Πολυχρόνης http://www.kospol.gr
Πρόσθεσε την εφαρμογή σου: http://greekandroidapps.gr/


12 May 2009, 01:29
Profile WWW

Joined: 03 Aug 2009, 23:49
Posts: 1
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
Μπράβο!!:)

Ευχαριστούμε πολύ για όλα σου τα post.


04 Aug 2009, 15:28
Profile
User avatar

Joined: 04 Nov 2009, 11:45
Posts: 8
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
Μπράβο, πολυ χρήσιμο και πολυ κατανοητό, σε ευχαριστούμε!
Παιδιά, πού θα μπορούσα να μάθω λίγη java για το android;


16 Nov 2009, 20:21
Profile WWW
Site Admin
User avatar

Joined: 24 May 2008, 23:50
Posts: 626
Location: Athens
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
"οποιαδήποτε" java μάθεις κάνει :)

_________________
Chief Software Engineer @ PinApps.com
Κωνσταντίνος Πολυχρόνης http://www.kospol.gr
Πρόσθεσε την εφαρμογή σου: http://greekandroidapps.gr/


02 Dec 2009, 19:58
Profile WWW
User avatar

Joined: 04 Nov 2009, 11:45
Posts: 8
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχείων
OK, Ευχαριστώ!


09 Dec 2009, 22:43
Profile WWW

Joined: 18 Feb 2010, 15:30
Posts: 10
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχε
Καλησπέρα,
Προσπαθώ να τρέξω τον κώδικα του tutorial, αλλά
μου βγάζει σφάλμα όπου αναφέρεται το "R"
(R cannot be resolved to a variable)
Τι κάνω λάθος?


15 Sep 2010, 18:55
Profile
Site Admin
User avatar

Joined: 24 May 2008, 23:50
Posts: 626
Location: Athens
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχε
τίποτα.

πάτα το ctrl και το b για να κάνεις build το project.

_________________
Chief Software Engineer @ PinApps.com
Κωνσταντίνος Πολυχρόνης http://www.kospol.gr
Πρόσθεσε την εφαρμογή σου: http://greekandroidapps.gr/


17 Sep 2010, 16:29
Profile WWW

Joined: 19 Sep 2010, 23:46
Posts: 2
Post Re: Εισαγωγική εφαρμογή για την κατανόηση των βασικών στοιχε
στο xml έχω κάποια προβλήματα...
α) στην ομάδα του edit text(τωρα μαθαίνω java/xml οπότε δεν ξέρω πως λέγεται) παίρνω αυτό το σφάλμα:
"error: No resource identifier found for attribute 'textAlign' in package 'android'"
β) στην ομάδα του button στο 2ο παίρνω αυτό το σφάλμα:
"error: No resource identifier found for attribute 'layout_toLeft' in package 'android"

α, και στο κωδικα της java όπου υπάρχει το (R.id.*) υπάρχει σφαλμα π λέει "R.id cannot be resolved" ακόμη και πατώντας ctrl+b όπως είπε και κάποιος πιο πάνω, δεν γίνετε τίποτα...


19 Sep 2010, 23:50
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 14 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware.