Tworzenie aplikacji mobilnych
description
Transcript of Tworzenie aplikacji mobilnych
Tworzenie aplikacji mobilnych
AndroidIMF (Input Method Framework)
android:inputType
• text (domyślny)• number• phone• datetime• date• time
<TextView android:text="No special rules:"/><EditText/>
…<TextView android:text="Email address:"/><EditTextandroid:inputType="text|textEmailAddress"/>
…<TextView android:text="Signed decimal number:"/><EditText
android:inputType="number|numberSigned|numberDecimal"/>…
<TextView android:text="Date:"/><EditTextandroid:inputType="date"/><TextView android:text="Multi-line text:„ /><EditTextandroid:inputType="text|textMultiLine|textAutoCorrect"android:minLines="3"android:gravity="top"/>
Akcje po wprowadzeniu danych<EditTextandroid:inputType="text|textEmailAddress"android:imeOptions="actionSend"/>…..
</TableRow><TableRow>
<TextViewandroid:text="Signed decimal number:" />
<EditTextandroid:inputType="number|numberSigned|numberDecimal"android:imeOptions="actionDone"
/>
Obsługa akcji
• setOnEditorActionListener(new MyActionLisener() )
• Obsługa komunikatów przekazywanych za pomocą flag:
• IME_ACTION_SEND
Obsługa umieszczania IME na ekranie
• Umieszczenie IME nad layutem• Zmiana rozmiaru Layout- u
Własna kontrola nad wprowadzaniem danych
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.commonsware.android.imf.two" android:versionCode="1"android:versionName="1.0"><application android:label="@string/app_name" android:icon="@drawable/cw">
<activity android:name=".IMEDemo2" android:label="@string/app_name"
android:windowSoftInputMode="adjustResize">
<intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/>
</intent-filter></activity>
</application><supports-screens android:largeScreens="true" android:normalScreens="true"android:smallScreens="true" android:anyDensity="true"/></manifest>
Kontrola nad Wprowadzaniem danych(Ukrycie IME)
• InputMethodManager mgr=(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
• mgr.hideSoftInputFromWindow(fld.getWindowToken(), 0);
• mgr.hideSoftInputFromWindow(fld.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
Data Adapers
• Dostęp do danych• Odpowiadają zarówno za dostęp do danych ja
i za konwersje do odpowiednich obiektów View
Przykład(generacja w obiektach TextView)
•String[] items={"this", "is", "a","really", "silly", "list"};
•new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);
Context
Layout
Kolekcja
Przykład:<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent" >
<TextViewandroid:id="@+id/selection"android:layout_width="fill_parent"android:layout_height="wrap_content"/>
<ListViewandroid:id="@android:id/list"android:layout_width="fill_parent"android:layout_height="fill_parent"android:drawSelectorOnTop="false"/>
</LinearLayout>
Wykorzystanie ListAcivitypublic class ListViewDemo extends ListActivity {private TextView selection;private static final String[] items={"lorem", "ipsum", "dolor","sit", "amet", "consectetuer", "adipiscing", "elit", "morbi", "vel", "ligula", "vitae", "arcu", "aliquet", "mollis", … };@Overridepublic void onCreate(Bundle icicle) {
super.onCreate(icicle);setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));
selection=(TextView)findViewById(R.id.selection);}public void onListItemClick(ListView parent, View v, int position, long id) {
selection.setText(items[position]);}}
Wielokrotny wybór
• W kodzie:setChoiceMode()CHOICE_MODE_SINGLE CHOICE_MODE_MULTIPLE
• W xml:android:choiceMode
<?xml version="1.0" encoding="utf-8"?><ListViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@android:id/list"android:layout_width="fill_parent"android:layout_height="fill_parent"android:drawSelectorOnTop="false"android:choiceMode="multipleChoice"/>
public class ChecklistDemo extends ListActivity {private static final String[] items={"lorem", "ipsum", "dolor","sit", "amet", "};@Overridepublic void onCreate(Bundle icicle) {
super.onCreate(icicle);setContentView(R.layout.main);setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,items));