Μαθήματα 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 πως θα βρω άκρη? Ευχαριστώ

    ΑπάντησηΔιαγραφή

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

Διαβάστε επίσης...

Επισκευή LED τηλεόρασης | Η LG μου ζήτησε 250 ευρώ, την έφτιαξα μόνος μου με μόλις 60 ευρώ!

Xiaomi Mi A3 | Υπάρχει ένας πολύ σημαντικός λόγος για να μην το αγοράσεις

Sharp Aquos Crystal: Το smartphone που ψάχνουμε μόλις δημιουργήθηκε από τη Sharp

Android | Ποιος είναι ο σωστός τρόπος για να διαγράψω τα δεδομένα μου πριν πουλήσω το παλιό μου τηλέφωνο;

Πέντε τρόποι για να ξεκλειδώσεις τη συσκευή σου αν έχεις ξεχάσει το Μοτίβο ή το PIN

Galaxy Fold | Το αναδιπλούμενο smartphone της Samsung είναι πανέμορφο αλλά καθόλου πρακτικό

Οδηγός αγοράς | Τα καλύτερα Android smartphone του 2018 για το 2019

Xiaomi Robot Vacuum review | Η ρομποτική σκούπα της Xiaomi είναι ο καλύτερος φίλος του τεμπέλη!

3D Printing | Γιατί οι εκτυπώσεις μου βγαίνουν χάλια και πώς μπορώ να τις διορθώσω;

OnePlus 7 Pro | Εξαιρετικό σε όλα του, αλλά το παίρνεις με 700 ευρώ;