Android手機的菜單很美觀大方,其編程實現起來也簡潔明快,如果誰用過QT的介面編程,那麼看一眼Android的Menu編程會馬上會心微笑,
Option Menu:
看看下一段代碼:
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class HelloActivity extends Activity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu);
menu.add(0, Menu.FIRST+1, 1, R.string.menu_open);
menu.add(0, Menu.FIRST+2, 2, R.string.menu_edit);
menu.add(0, Menu.FIRST+3, 3, R.string.menu_update);
menu.add(0, Menu.FIRST+4, 4, R.string.menu_close);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
super.onOptionsItemSelected(item);
switch(item.getItemId())
{
case Menu.FIRST + 1:
{
this.setTitle("Open Text!");
break;
}
case Menu.FIRST + 2:
{
this.setTitle("Edit Text!");
break;
}
case Menu.FIRST + 3:
{
this.setTitle("Update Text!");
break;
}
case Menu.FIRST + 4:
{
this.setTitle("Close Text!");
break;
}
}
return true;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
}
}
只需要改寫父類Activity的兩個函數即可,方便之極。也就是說Android早就為你寫好了相關的代碼,你只要填一些功能表項目,再對每一個功能表項目的ItemId編寫具體的
作業碼就行了。
Android資源
上述代碼中有幾行可能對於入門者不好理解
1.添加菜單menu.add(0, Menu.FIRST+1, 1, R.string.menu_open);
menu.add(0, Menu.FIRST+2, 2, R.string.menu_edit);代碼中的 R.string.menu_open/menu_edit
這些其實是指資源檔中的ID,映射到具體的資源,這裡是映射到字串資源menu_open, menu_edit,其具體的值可以看res/values/string.xml在這裡定義了字串的值:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloActivity!</string>
<string name="app_name">HelloWorld</string>
<string name="menu_open">Open</string>
<string name="menu_edit">Edit</string>
<string name="menu_update">Update</string>
<string name="menu_close">Close</string>
</resources>
在Android中,Activity顯示的布局也可在資源中定義,並且以可視化的方式來操作布局對應的XML檔案。可以看res/layout/main.xml這就是一個布局檔案,這裡指定了這個布局裡有哪些介面元素以及如何組織,相對位置,絕對位置等資訊。來看看其中內容:
<?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/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="MyTest OK yest!"></TextView>
</LinearLayout>
這裡就描述了布局為LinearLayout,包含了一個TextView,TextView的值為 MyTest.這個XML檔案被編譯後,可以使用R.layout.main的ID來從資源中取得。
於是Activity可以用setContentView(R.layout.main)來直接從資源取得布局,來繪製介面元素。
另一類常用資源就是圖片
在res/drawable/下面有一些圖片,你也可以新加一些圖片到這裡。然後就可以通過.R.drawable.xxx 的ID來從資源中取得對應的圖片。
Context Menu:
上面是手機底部菜單,Android還提供了Context操作功能表的操作,也相當簡單,看如下代碼: