1. 程式人生 > >Android之彈出多級選單

Android之彈出多級選單

使用佈局檔案建立選單:(多級選單)
在res下建立資料夾menu(如果已經有啦就不用再建立了)
在該menu資料夾下建立XML檔案這裡我把檔名命名為menu
在建立的menu.XML檔案中
寫入:


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >


    <item
        android:id="@+id/file"
        android:title="file"/>
    <item
        android:id="@+id/edit"
        android:title="edit"/>
    <item
        android:id="@+id/help"
        android:title="help">
        <menu>
            <item
                android:id="@+id/window"
                android:title="window"/>
            <item
                android:id="@+id/run"
                android:title="run"/>
        </menu>
    </item>


</menu>


在Activity中建立選單的地方把下面的程式碼換成this.getMenuInflater().inflate(R.menu.menu,menu);
R.menu.menu代表你建立的選單XML檔案


menu.add("file");
menu.add("edit");

menu.add("source");

即:

public class MainActivity extends Activity {
private TextView username,password;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
username = (TextView) findViewById(R.id.username);


password = (TextView) findViewById(R.id.password);


this.registerForContextMenu(username);//註冊選單
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
this.getMenuInflater().inflate(R.menu.menu,menu);
super.onCreateContextMenu(menu, v, menuInfo);

}
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
//當選單上下文元素被選中時執行
Toast.makeText(this, item.getTitle()+"onContextItemSelected", 1).show();
return super.onContextItemSelected(item);
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
//選單元素被選中時執行
Toast.makeText(this, item.getTitle()+"onMenuItemSelected", 1).show();
return super.onMenuItemSelected(featureId, item);
}
}