• Nie Znaleziono Wyników

Tworzenie aplikacji mobilnych

N/A
N/A
Protected

Academic year: 2021

Share "Tworzenie aplikacji mobilnych"

Copied!
15
0
0

Pełen tekst

(1)

Tworzenie aplikacji mobilnych

Android

IMF (Input Method Framework)

(2)

android:inputType

• text (domyślny)

• number

• phone

• datetime

• date

• time

(3)

<TextView android:text="No special rules:"/>

<EditText/>

<TextView android:text="Email address:"/>

<EditText

android:inputType="text|textEmailAddress"/>

<TextView android:text="Signed decimal number:"/>

<EditText

android:inputType="number|numberSigned|numberDecimal"/>

<TextView android:text="Date:"/>

<EditText

android:inputType="date"/>

<TextView android:text="Multi-line text:„ />

<EditText

android:inputType="text|textMultiLine|textAutoCorrect"

android:minLines="3"

android:gravity="top"/>

(4)
(5)

Akcje po wprowadzeniu danych

<EditText

android:inputType="text|textEmailAddress"

android:imeOptions="actionSend"

/>

…..

</TableRow>

<TableRow>

<TextView

android:text="Signed decimal number:" />

<EditText

android:inputType="number|numberSigned|numberDecimal"

android:imeOptions="actionDone"

/>

(6)

Obsługa akcji

• setOnEditorActionListener(new MyActionLisener() )

• Obsługa komunikatów przekazywanych za pomocą flag:

• IME_ACTION_SEND

(7)

Obsługa umieszczania IME na ekranie

• Umieszczenie IME nad layutem

• Zmiana rozmiaru Layout- u

(8)

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>

(9)

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);

(10)

Data Adapers

• Dostęp do danych

• Odpowiadają zarówno za dostęp do danych ja i za konwersje do odpowiednich obiektów

View

(11)

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

(12)

Przykład:

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

<LinearLayout

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

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >

<TextView

android:id="@+id/selection"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<ListView

android:id="@android:id/list"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:drawSelectorOnTop="false"

/>

</LinearLayout>

(13)

Wykorzystanie ListAcivity

public 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", … };

@Override

public 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]);

} }

(14)

Wielokrotny wybór

• W kodzie:

setChoiceMode()

CHOICE_MODE_SINGLE CHOICE_MODE_MULTIPLE

• W xml:

android:choiceMode

(15)

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

<ListView

xmlns: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", "};

@Override

public 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));

Cytaty

Powiązane dokumenty

• getRootView(): Znajduje główny kontener całego activity ustawiony

• android:layout_alignTop: Określa, że widget powinien być wyrównany swoją górną krawędzią z górną krawędzią widgetu, na który wskazuje znacznik.

Celem studiów jest zapoznanie Cię z najważniejszymi technologiami, narzędziami oraz zasadami tworzenia aplikacji internetowych, intranetowych i mobilnych, a także przygotowanie

Uczestnicy wskazani w plikach o statusie „Do zatwierdzenia” są widoczni w Aplikacji iPPK, ale nie można w stosunku do nich wykonywać żadnych operacji (np. przekazać

Tworzenie stron internetowych z wykorzystaniem HTML i CSS (22 godz.) Tworzenie struktury witryn internetowych w oparciu o język HTML.. Najważniejsze

LinearLayout (horizontal) – układ liniowy, w którym kolejne elementy stanowią nowe kolumny LinearLayout(vertical) – układ liniowy, w którym kolejne elementy stanowią nowe wiersze

• Ustalenie, kto składa wniosek o udostępnienie informacji publicznej, w sensie formalnym nie ma żadnego znaczenia dla dalszego biegu sprawy. • Nie ma takich

Określenie zakresu dopuszczalnych form udostępniania wiedzy publicznej w świetle uregulowań ogólnych - ustawy z dnia 6. września