Prosty przykład formularza do podawania danych oraz wyświetlenia ich na tosterze.
Kroki:
- Przy pomocy Eclipse generujemy standardowy projekt Androidowy
- W głównej aktywności układamy komponenty GUI (TextView, EditText, Button), poniżej wygenerowany kod Activity:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="@string/name" /> <EditText android:id="@+id/editName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/textView1" android:ems="10" android:inputType="textPersonName" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editName" android:layout_below="@+id/editName" android:layout_marginTop="16dp" android:text="@string/bornDate" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editDate" android:layout_below="@+id/editDate" android:layout_marginTop="15dp" android:text="@string/semester" /> <EditText android:id="@+id/editDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView2" android:layout_alignRight="@+id/editName" android:layout_below="@+id/textView2" android:ems="10" android:inputType="date" /> <EditText android:id="@+id/editSemestr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView3" android:layout_alignRight="@+id/editDate" android:layout_below="@+id/textView3" android:ems="10" android:inputType="textMultiLine" /> <Button android:id="@+id/buttonSave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/editName" android:layout_below="@+id/editSemestr" android:layout_marginRight="18dp" android:layout_marginTop="18dp" android:text="@string/save" /> </RelativeLayout>
- Do klasy zasobów String (res/values/string.xml) dodajemy napisy używane w labelach:
<string name="name">Imię i nazwisko</string> <string name="bornDate">Data urodzenia</string> <string name="semester">Semester</string> <string name="save">Zapisz</string>
- W klasie obsługującej główne Activity dodajemy kod odczytujący teksty wpisane w formularzu oraz wyświetlający je na tosterze:
package net.shad.droidlern; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // // Pobranie Id buttona oraz przypisanie do niego reakcji na onClick // Button btn=(Button)findViewById(R.id.buttonSave); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { getTextElement(); } }); } @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; } /* * Pobranie zawartosci formularza oraz wyswietlenie na Toast */ private void getTextElement(){ // // Pobranie ID elementow GUI // EditText editName=(EditText)findViewById(R.id.editName); EditText editData=(EditText)findViewById(R.id.editDate); EditText editSemestr=(EditText)findViewById(R.id.editSemestr); // // Pobranie zawartosci elementow formatki // String message=editName.getText()+"n"+editData.getText()+"n"+editSemestr.getText(); // // Wyswietlenie tekstu na Toast // Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } }
- Rezultat kodu aplikacji:
Możliwość komentowania jest wyłączona.