« wróć do listy
Następny Wpis NA LIŚCIE (W DÓŁ)
LiMux: plan wykonany z nadwyżką azhag
10 osób twierdzi: warto przeczytać
Następny Wpis NA LIŚCIE (W GÓRĘ)
Czarna magia Wine, minikompendium, część 1 Romancing Penguin
12 osób twierdzi: warto przeczytać

W tej części kursu przedstawimy sobie kontrolki. Pierw musimy uruchomić oczywiście Eclipse, a następnie tworzymy nowy projekt pod Androida. W polu project name wpiszmy na przykład Kontrolki, jako target wybrałem Android 2.1, nazwa pakietu to com.rafalduraj.Kontrolki, a aktywności KontrolkiActivity.

Teraz otwieramy plik res/layout/main.xml. Musimy go edytować w celu dodania kilku rzeczy.

Początkowo wygląda on tak:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >


    <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="@string/hello" />


</LinearLayout>

Jest tam już kontrolka TextView, która wyświetla tekst na ekranie. Możemy ją zostawić, jednak zmienimy źródło jej tekstu z android:text=”@string/hello” na android:text=”@string/polecenie”.

Później zajmiemy się plikiem strings.xml. W powyższej kontrolce są jeszcze dwie linijki kodu – android:layout_width=”fill_parent” oraz android:layout_height=”wrap_content”. Są odpowiedzialne odpowiednio za szerokość i wysokość pola tekstowego. Fill_parent oznacza, że zajmuje całą szerokość rodzica, w tym przypadku LinearLayout, czyli nasz cały ekran, a wrap_content podaje odpowiednią wysokość do zawartości naszego pola TextView. Dodajmy teraz linijkę android:id=”@+id/Polecenie”, Dzięki temu nasze TextView otrzyma id, dzięki któremu powiążemy kontrolkę z kodem aplikacji. Możemy też wyśrodkować nasz tekst dzięki linijce android:gravity=”center”. Wielkość tekstu ustalamy przy pomocy android:textSize=”20dp”.

Teraz otwórzmy plik res/values/strings.xml i dodajmy <string name=”Polecenie”>Wprowadź tekst i wciśnij przycisk</string>

Teraz musimy dodać nową kontrolkę, a będzie to EditText, który pozwala wpisywać tekst.

Dodajmy taki kod:

<EditText

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/Edit" />

Kolejnym elementem jest przycisk:

<Button 

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/Pobierz"

android:layout_gravity="center" 

android:text="@string/Pobierz" />

Wcześniej użyliśmy android:gravity, który odnosi się do zawartości kontrolki, a android:layout_gravity pozycjonuje całą kontrolkę względem rodzica. Dodajmy do strings.xml linijkę <string name=”Pobierz”>Pobierz</string>

Na końcu dodajemy jeszcze jedną kontrolkę TextView, która wyświetli wpisany przez nas tekst w EditText po kliknięciu przez nas przycisku.

<TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:id="@+id/Tekst" />

Teraz musimy przejść do kodu, a więc otwórzmy plik KontrolkiActivity.java.

Ostateczny kod wygląda tak:

package com.rafalduraj.Kontrolki;


import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;


public class KontrolkiActivity extends Activity implements OnClickListener {

    private EditText edit;

    private TextView tekst;

    private Button pobierz;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        

        edit = (EditText)findViewById(R.id.Edit);

        pobierz = (Button)findViewById(R.id.Pobierz);

        pobierz.setOnClickListener(this);

        tekst = (TextView)findViewById(R.id.Tekst);

    }


public void onClick(View v) {

tekst.setText(edit.getText().toString());

}

}

W linijce public class... dodalśmy implements OnClickListener. Dodalismy do naszej aplikacji interfejs, który nasłuchuje kliknięć w przycisk. Linijki private... oraz te z findViewById po prostu łączą nasze kontrolki z pliku main.xml. Linijka pobierz.setOnClickListener(this); ustawia dla naszego przycisku pobierz nasłuchiwacza kliknięć. Na końcu mamy metodę public void onClick(View v), która mówi co ma być zrobione, gdy przycisk zostanie kliknięty. W naszym przypadku ustawia polu tekst jako treść pobrany tekst z pola edit.

Aplikacja skończona, teraz po wpisaniu tekstu w polu EditText i wciśnięciu przycisku pod nim powinna pojawić się ta treść.

W następnym artykule opisze Intents, dzięki którym aplikacja może mieć więcej ekranów, a także wywoływać przeglądarkę.

Poprzednie części artykułu:

Lekcja druga - http://www.linuxportal.pl/artykuly/android-program/.../1-id105869

Lekcja pierwsza - http://www.linuxportal.pl/artykuly/android-program/.../0-id105740

Udostępnij informacje o Wpisie w sieciach społecznościowych:
Polub LinuxPortal.pl:

Komentarze:

Nie ma jeszcze komentarzy. Dodaj swój komentarz.
logo:
Aby dodać komentarz: zaloguj się ikona LinuxPortal.pl ikona Facebook.com ikona Google+

Wpisy z blogów/ TOP 30dni

Pliki /etc/shadow, /etc/security/passwd i /etc/group - Dodawanie nowych użytkowników - cz.3 Fragmenty artykułów z książek wydawnictwa Helion.pl
41 osób twierdzi: warto przeczytać
Polecenia useradd i newusers - Dodawanie nowych użytkowników - cz.5 Fragmenty artykułów z książek wydawnictwa Helion.pl
39 osób twierdzi: warto przeczytać
Prosta kompilacja jądra jack
35 osób twierdzi: warto przeczytać
Linux for Woman Beings KDEFamily.pl
35 osób twierdzi: warto przeczytać
Wpisy z blogów więcej:
W związku z wejściem w życie 25 maja 2018 roku nowego Rozporządzenia o Ochronie Danych Osobowych znanym jako "RODO" pragniemy poinformować Cię,
w jaki sposób przetwarzane są dane osobowe pozostawiane przez Ciebie podczas korzystania z LinuxPortal.pl.
Zapoznaj się z Polityką prywatności.

Klikając „Zamknij”, zamykasz ten komunikat i wyrażasz zgodę na przetwarzanie tych danych, w tym w plikach cookies, przez LinuxPortal.pl sp. z o.o. w celu realizacji usług zgodnie z Regulaminem.
Zamknij »