Androidプログラミングのメニューの実現方法の実例
この例は、Androidプログラミングのメニューの実現方法を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
Options Menuユーザーがmenu buttonボタンを押すと表示されるメニュー
Contect Menuでは、ユーザが画面を長押しすると、コンテキストメニューの表示画面が登録されます。
Submenu ユーザがメニューのオプションを押すと、ポップアップされたサブメニューが表示されます。
以上の三つのメニューはつまりオプションメニューとコンテキストメニューとサブメニューです。
コンテキストメニュー
1.onCreateConteextMenuを実現すればこのメニューを作成できます。
listview.set OnCreateConttext MenuListener(new OneeateConteed text MenuListener){
コンテキストメニューもこの方法で作成します。
二.オプションメニュー
比べてみれば簡単です。
同じ理屈はonCreateoptions Menuを実現するだけで、OptionsItem SelectedとOptionsMenuCloedはOKです。
三.サブメニュー
サブメニューも難しいわけではないですが、確かにこのようにオプションメニューやコンテキストメニュー(コンテキストメニューでもサブメニューが実現できます。ここではこのような例を挙げます。)が実現されれば、サブメニューの実現はスムーズになります。上の代のように
コード:
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。
Options Menuユーザーがmenu buttonボタンを押すと表示されるメニュー
Contect Menuでは、ユーザが画面を長押しすると、コンテキストメニューの表示画面が登録されます。
Submenu ユーザがメニューのオプションを押すと、ポップアップされたサブメニューが表示されます。
以上の三つのメニューはつまりオプションメニューとコンテキストメニューとサブメニューです。
コンテキストメニュー
1.onCreateConteextMenuを実現すればこのメニューを作成できます。
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
// menu.xml
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.menu, menu);
//
menu.setHeaderTitle(" -ContextMenu");
menu.add(0, 0, 0, " 0");
menu.add(0, 1, 0, " 1");
}
2.メニューのオプションをクリックしたときにこの方法を呼び出します。
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterContextMenuInfo infor = (AdapterContextMenuInfo)item.getMenuInfo();
switch (item.getItemId()) {
case R.id.help:
return true;
case R.id.addnew:
}
}
3.コンテキストメニューがオフになったときに呼び出す方法
@Override
public void onContextMenuClosed(Menu menu) {
// TODO Auto-generated method stub
super.onContextMenuClosed(menu);
}
このように既に定義されているコンテキストメニューについては、いくつかのコントロールに登録しなければなりません。このようにコントロールを長く押し続けると、コンテキストメニューが出てきます。コンテキストメニューをどのように特定のコントロールに登録しますか?最初はListViewを実現するモニターです。listview.set OnCreateConttext MenuListener(new OneeateConteed text MenuListener){
コンテキストメニューもこの方法で作成します。
public void onCreateContextMenu(ContextMenu conMenu, View view , ContextMenuInfo info) {
conMenu.setHeaderTitle("ContextMenu");
conMenu.add(0, 0, 0, "Delete this favorite!");
/* Add as many context-menu-options as you want to. */
}
});
または、直接に本活動でレギターForConteextMenu(this.listView 1)を呼び出します。ここはListViewに登録しました。これでListViewを長く押すとコンテキストメニューが出ます。二.オプションメニュー
比べてみれば簡単です。
同じ理屈はonCreateoptions Menuを実現するだけで、OptionsItem SelectedとOptionsMenuCloedはOKです。
三.サブメニュー
サブメニューも難しいわけではないですが、確かにこのようにオプションメニューやコンテキストメニュー(コンテキストメニューでもサブメニューが実現できます。ここではこのような例を挙げます。)が実現されれば、サブメニューの実現はスムーズになります。上の代のように
コード:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
// menu.xml
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.layout.menu, menu);
//
menu.setHeaderTitle(" -ContextMenu");
menu.add(0, 0, 0, " 0");
menu.add(0, 1, 0, " 1");
//
int base = menu.FIRST + 100;
SubMenu sm = menu.addSubMenu(base, base + 1, Menu.NONE, "submenu");
sm.add(base, base + 2, base + 2, "sub item1");
sm.add(base, base + 3, base + 3, "sub item2");
}
このようにメニューも実現され、そのクリックイベントについては、該当するオプションメニューやコンテキストメニューのリスニング器でそのまま実行すると判断すれば大丈夫です。ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。