Μαθήματα Android Studio - Μέρος 3ο: Linear Layout, Button, TextView


Μάθημα τρίτο για το Android Studio και σήμερα ο Χρήστος θα μας δείξει ένα απλό παράδειγμα design της εφαρμογής μας, παρουσιάζοντας τρία στοιχεία τα οποία θα χρησιμοποιήσουμε κατά κόρον στον προγραμματισμό μας στο Android, το Linear Layout, το Button και το TextView. Επειδή δυστυχώς δεν μπόρεσε να δημιουργήσει το δεύτερο βίντεο που υλοποιούμε την εφαρμογή χωρίς Fragment έγραψε τις αλλαγές που πρέπει να αναφερθούν, τις οποίες μπορείτε να βρείτε κάτω από το βίντεο.


Δημιουργούμε το layout στο αρχείο activity_main.xml όπως φαίνεται παρακάτω:

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment"><Button android:id="@+id/button" android:text="@string/bye_world" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onClick="onButtonPressed"/><TextView android:id="@+id/textview" android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content"/></LinearLayout>

Η μόνη ουσιαστική προσθήκη είναι η property "onClick", η οποία παίρνει ως τιμή το όνομα μιας συνάρτησης. Εδώ δεν χρησιμοποιούμε κάποιον OnClickListener άμεσα στον κώδικα μας αλλά το κάνω μέσα από το layout με την onClick.

Όταν πατήσουμε το κουμπί θα κληθεί η συνάρτηση που έχουμε βάλει στην onClick, δηλαδή η onButtonPressed. Αυτήν την συνάρτηση την γράφουμε στην κλάση της Activity στην οποία ανήκει το layout στο οποίο την δηλώνουμε ως τιμή. Δεν μπορούμε να την χρησιμοποιήσουμε όταν έχουμε κάποιο Fragment, για αυτό στο βίντεο χρησιμοποιούμε κάποιον OnClickListener.

Η συνάρτηση onButtonPressed είναι αυτή που βλέπουμε παρακάτω:

package me.clepto.myapplication;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
    private Button button;
    private TextView textview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.button);
        textview = (TextView) findViewById(R.id.textview);
    }

    @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.
        switch (item.getItemId()) {
            case R.id.action_settings:
                return true;
        }
        return super.onOptionsItemSelected(item);
    }
    public void onButtonPressed (View v) {
        String buttonText = button.getText().toString();
        String textviewText = textview.getText().toString();
        button.setText(textviewText);
        textview.setText(buttonText);
    }
}

Μπορείτε να βρείτε όλα τα μαθήματα του Χρήστου εδώ.

Σχόλια

  1. kalispera chris exo stisoi ena app sto android studio kai thelo otan patao to button na pigenh se mia omada sto facebook auto pos to kanoume omos???........se euxaristop prokatavolika

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Πρέπει αν χρησιμοποιήσεις Intents

      String url = "http://www.example.com";
      Intent i = new Intent(Intent.ACTION_VIEW);
      i.setData(Uri.parse(url));
      startActivity(i);

      Διαγραφή
  2. Αυτό το σχόλιο αφαιρέθηκε από τον συντάκτη.

    ΑπάντησηΔιαγραφή
  3. Πολύ καλό βίντεο κ πολύ κατατοπιστικό για την δημιουργία μιας απλής εφαρμογής :-) . Ελπίζω να συνεχίσεις να τις εφαρμογές με τη χρήση κυρίως fragments γιατί πολύ τα προωθεί τελευταία η google :-P . Μου άρεσε κ όταν δεν συμπλήρωνες κάποιες μεθόδους κ εμφάνιζε λάθος κ εξηγούσες ποιο είναι υποκλάση πιου ώστε να είναι πιο εύκολο να καταλάβεις τι χρειάζεσαι πραγματικά και να μη χάνεσαι :-). Keep it up !!!

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Για τις απλές εφαρμογές όπως αυτή είμαι της άποψης ότι δεν χρειάζεται η χρήση fragment. Πιστεύω ότι πρέπει να χρησιμοποιούμε κάποια πράγματα μόνο όταν τα χρειαζόμαστε. Σίγουρα κάποια στιγμή θα χρησιμοποιήσω fragments οπότε θα τα δούμε πιο αναλυτικά τότε αλλά τώρα για αρχή δεν σκοπεύω να χρησιμοποιώ (εκτός και αν αλλάξει κάτι δραστικά).

      Διαγραφή
  4. Καλημέρα θα ήθελα να ρωτήσω κάτι άσχετο με το θέμα αλλά σημαντικό για μένα! Σε ένα LG μου διαφεύγει το μοντέλο android είναι. Έχει γίνει root και δεν υπάρχει πουθενά το play store ουτε explorer. Του εγκατέστησα το όπερα στέλνοντας από άλλο κινητό μέσω. Bluetooth για το play store πως θα βρω άκρη? Ευχαριστώ

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Στείλε μου ένα email στο doctorandroid.gr@gmail.com να το δούμε,

      Διαγραφή

Δημοσίευση σχολίου

Πες την άποψή σου ή κάνε την ερώτησή σου ελεύθερα, ακολουθώντας όμως τους στοιχειώδεις κανόνες ευγένειας.

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android Basics | Τι είναι το ADB, πώς το χρησιμοποιώ και ποιες είναι οι βασικές εντολές του

Android | Χρήσιμα tip για να βγάζουμε εξαιρετικές φωτογραφίες με το κινητό μας

Google Pixel 4a, OnePlus Nord, iPhone SE | Συγκρίνουμε τα πιο ενδιαφέροντα smartphone του 2020

Μάθε παιδί μου Linux (μέρος 8) | Άδειες φακέλων, αρχείων και διεργασιών

Μάθε παιδί μου Linux (μέρος 7) | Ο ρόλος των χρηστών και των ομάδων στο Linux

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Android | Πώς βγάζουμε αστροφωτογραφίες με την Google camera