Dodano: sobota, 17 grudzień 2011r.
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
Wpisy z blogów/ TOP 30dni