1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn tạo menu trong Android

13 1,5K 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Android Introduction GUI Menu
Tác giả Mihail L. Sichitiu
Thể loại Tutorial
Năm xuất bản 2011
Định dạng
Số trang 13
Dung lượng 848 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hướng dẫn tạo menu trong Android

Trang 1

@2011 Mihail L Sichitiu 1

Android

Introduction

GUI Menu

Trang 2

@2011 Mihail L Sichitiu 2

Goal

options/sub/context menus

<option menu> <sub-menu> <context menu>

Automatically fill “Hi!”

in the EditText Plus menu will

also open a sub-menu

Display

messages when

a menu clicked

Trang 3

Menu Composition

Plus

Home

Pre

Next

<option menu>

Sub1 Sub2

Hi Hola

Hello

<sub-menu>

<context menu from EditText>

Long press

in EditText

Trang 4

@2011 Mihail L Sichitiu 4

Create HelloMenu Project

 Create the two TextViews

and an EditText

 Create “ menu ” folder in

res/

 Create menu.xml in

res/menu/ (New > Other >

Android XML File)

 Create context_menu.xml

in res/menu/

Trang 5

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

<menu

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

<item android:id="@+id/menuItemPlus" android:title="@string/plus"

android:icon="@drawable/plus" >

<menu>

<item android:id="@+id/menuItemSub1" android:title="@string/sub1"></item>

<item android:id="@+id/menuItemSub2" android:title="@string/sub2"></item>

</menu>

</item>

<item android:icon="@drawable/home" android:id="@+id/menuItemHome"

android:title="@string/home"></item>

<item android:icon="@drawable/pre" android:id="@+id/menuItemPre"

android:title="@string/pre"></item>

<item android:icon="@drawable/next" android:id="@+id/menuItemNext"

android:title="@string/next"></item>

</menu>

Sub-menu items

Option menu items

 Define Option menu and sub-menu

Trang 6

@2011 Mihail L Sichitiu 6

res/menu/context.xml

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

<menu

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

<item android:id="@+id/menuItemHi" android:title="@string/hi_msg"></item>

<item android:id="@+id/menuItemHola" android:title="@string/hola_msg"></item>

<item android:id="@+id/menuItemHello" android:title="@string/hello_msg"></item>

</menu>

 Define context menu for EditText

Trang 7

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

<resources>

<string name="hello">Click Menu Button ! </string>

<string name="app_name">Android Menu Example</string>

<string name="plus">Plus</string>

<string name="pre">Pre</string>

<string name="next">Next</string>

<string name="home">Home</string>

<string name="sub1">Sub1</string>

<string name="sub2">Sub2</string>

<string name="hi_msg">Hi !</string>

<string name="hola_msg">Hola !</string>

<string name="hello_msg">Hello !</string>

</resources>

 Define constant strings used in the application

Trang 8

@2011 Mihail L Sichitiu 8

icons

 Place icons used in menu.xml in res/drawable/

icons

 Download icons at:

http://www4.ncsu.edu/~mlsichit/UCAB/resources.html

Trang 9

Inflating a option menu

resource

 Inflating a menu resource (menu.xml) by adding

onCreateOptionsMenu(Menu menu) in the main Activity.

 Menu items in menu.xml will appear when the user touches the

MENU button

public boolean onCreateOptionsMenu(Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.menu, menu);

return true;

}

public boolean onCreateOptionsMenu (Menu menu) {

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu menu , menu);

return true;

}

Trang 10

@2011 Mihail L Sichitiu 10

Response to user action

onOptionsItemSelected(Menu menu) in the

main Activity.

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menuItemPlus:

Toast.makeText(this, "Plus Button Clicked !", Toast.LENGTH_SHORT).show();

Log.i(TAG,"menuItemPlus");

return true;

:

:

case R.id.menuItemNext:

Toast.makeText(this, "Next Button Clicked !", Toast.LENGTH_SHORT).show();

Log.i(TAG,"menuItemNext");

return true;

}

return false;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menuItemPlus:

Toast.makeText(this, "Plus Button Clicked !", Toast.LENGTH_SHORT).show();

Log.i(TAG,"menuItemPlus");

return true;

:

:

case R.id.menuItemNext:

Toast.makeText(this, "Next Button Clicked !", Toast.LENGTH_SHORT).show();

Log.i(TAG,"menuItemNext");

return true;

}

return false;

}

Trang 11

Register View for a context

menu

passing it a View (an EditText in this example)

you assign it a context menu

it displays a context menu.

public class AndroidMenuExampleActivity extends Activity {

private EditText mOutEditText;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mOutEditText = (EditText) findViewById(R.id.editText);

registerForContextMenu(mOutEditText);

}

:

:

public class AndroidMenuExampleActivity extends Activity {

private EditText mOutEditText ;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mOutEditText = (EditText) findViewById(R.id.editText);

registerForContextMenu(mOutEditText);

}

:

:

Trang 12

@2011 Mihail L Sichitiu 12

Define context menu’s

appearance

By overriding the activity's context menu create callback method,

onCreateContextMenu().

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.context_menu, menu);

}

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.context_menu, menu);

}

Trang 13

Define context menu’s

behavior

method for context menu , onContextItemSelected().

@Override

public boolean onContextItemSelected(MenuItem item) {

Log.i(TAG,"ContextItem selected");

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

switch (item.getItemId()) {

case R.id.menuItemHi:

mOutEditText.setText( this.getResources().getText( R.string.hi_msg) );

return true;

case R.id.menuItemHola:

:

:

default:

return super.onContextItemSelected(item);

}

}

@Override

public boolean onContextItemSelected(MenuItem item) {

Log.i(TAG,"ContextItem selected");

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

switch (item.getItemId()) {

case R.id.menuItemHi:

mOutEditText.setText( this.getResources().getText( R.string.hi_msg) );

return true;

case R.id.menuItemHola:

:

default:

return super.onContextItemSelected(item);

}

}

Ngày đăng: 20/11/2013, 21:10

TỪ KHÓA LIÊN QUAN

w