scino. android для начинающих. Занятие 5

10

Upload: scino

Post on 27-Jul-2015

120 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Scino. Android для начинающих. Занятие 5
Page 2: Scino. Android для начинающих. Занятие 5

Навигация в приложении

Меню, контекстные меню, адаптеры, лямбда выражения

Page 3: Scino. Android для начинающих. Занятие 5

Лямбда выражения

• (арг1, арг2...) -> { тело }• (тип1 арг1, тип2 арг2...) -> { тело }

Примеры:

(int a, int b) -> { return a + b; } () -> textView.setText("Hello World"); (String s) -> {textView.setText(s); } () -> 42 () -> { return 3.1415 };

Page 4: Scino. Android для начинающих. Занятие 5

Меню

Функциональное

Page 5: Scino. Android для начинающих. Занятие 5

Menu

Контекстное Всплывающее

Page 6: Scino. Android для начинающих. Занятие 5

Меню xml

android:id – идентификатор элемента менюandroid:icon – ссылка на ресурс иконки пункта менюandroid:title – название пункта менюandroid:showAsAction – определяет как и когда будет отображаться пункт меню на Action Bar

Page 7: Scino. Android для начинающих. Занятие 5

Menu, full xml<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@[+][package:]id/resource_name" android:title="string" android:titleCondensed="string" android:icon="@[package:]drawable/drawable_resource_name" android:onClick="method name" android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"] android:actionLayout="@[package:]layout/layout_resource_name" android:actionViewClass="class name" android:actionProviderClass="class name" android:alphabeticShortcut="string" android:numericShortcut="string" android:checkable=["true" | "false"] android:visible=["true" | "false"] android:enabled=["true" | "false"] android:menuCategory=["container" | "system" | "secondary" | "alternative"] android:orderInCategory="integer" /> <group android:id="@[+][package:]id/resource name" android:checkableBehavior=["none" | "all" | "single"] android:visible=["true" | "false"] android:enabled=["true" | "false"] android:menuCategory=["container" | "system" | "secondary" | "alternative"] android:orderInCategory="integer" > <item /> </group> <item > <menu> <item /> </menu> </item></menu>

Page 8: Scino. Android для начинающих. Занятие 5

Контекстное меню

1) Регистрация компонента для контекстного меню:registerForContextMenu(компонент);

2) Реализация метода onCreateContextMenu() в Активити@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,                                ContextMenuInfo menuInfo) {    super.onCreateContextMenu(menu, v, menuInfo);    MenuInflater inflater = getMenuInflater();    inflater.inflate(R.menu.context_menu, menu);}

2) Реализация метода onContextItemSelected()@Overridepublic boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case ID:

… default: return super.onContextItemSelected(item); }}

Page 9: Scino. Android для начинающих. Занятие 5

Всплывающее меню

public void showPopup(View v) {    PopupMenu popup = new PopupMenu(this, v);

    MenuInflater inflater = popup.getMenuInflater();    inflater.inflate(R.menu.actions, popup.getMenu());

    popup.show();}

Page 10: Scino. Android для начинающих. Занятие 5

Адаптеры

adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, данные);