Androidサブメニューとオプションメニューとコンテキストメニューの実装
6577 ワード
メニューはAndroid開発に欠かせませんが、どのようにして様々なメニューを実現すればいいのでしょうか.頭が痛いのではないでしょうか.以下、ご紹介します.
1.オプションメニューとサブメニューの実装
オプションメニュー:最も一般的なメニューで、Androidではoption menuと呼ばれています.オプションメニューは最大6つのメニュー項目しか表示できません.6つを超えると、6番目のメニュー項目はシステムによって「もっと」というサブメニューに置き換えられます.もともと表示できないメニュー項目はすべて「もっと」メニューのサブメニュー項目として表示されます.
サブメニュー:Androidでサブメニューをクリックすると、懸濁ウィンドウにサブメニューが表示されます.サブメニューはネストをサポートしていません.つまり、サブメニューに他のサブメニューを含めることはできません.
手順1:サブメニューとオプションメニューを作成します.「myMenu」という名前のAndroidプロジェクトを作成します.MyMenuActivityクラスで、Source→Override/Implement Methodsを右クリックします.オプションメニューはonCreateOptionsMenu()メソッドで生成されます.コードは次のとおりです.
手順2:応答メニュー.onOptionsItemSelected(MenuItem)は、メニュー項目がクリックされるたびにandroidがメソッドを呼び出し、クリックされたメニュー項目に入力します.
2.コンテキストメニューの実装
コンテキストメニュー:Androidでビューコントロールを長押しして表示されるメニューで、windowsが右クリックしてポップアップするメニューであるコンテキストメニューをクリックします.
手順1:コンテキストメニューの登録
手順2:コンテキストメニューの生成
手順2:コンテキストメニューへの応答
悟る
サブメニューを作るとき、最初はデフォルトのMenuにサブメニューを追加しようとしました.もちろん失敗しました.SubMenuサブメニュークラスのオブジェクトだけがサブメニューを含めることができるからです.また、サブメニューの応答でonOptionsItemSelected(MenuItem)をうっかり書き間違えたため、私はずっと実現できませんでした.コンテキストメニューを作成するときは、コンテキストメニューをポップアップするコントロールにコンテキストメニューを登録することを忘れないでください.Androidを学ぶのもしばらくの間、想像していたほど難しくないことに気づきました.フォームのジャンプやメニュー、その他の内容をするときでも、正しい手順や方法をマスターすれば、必ずできます.でも、気をつけなきゃいけないんだよ、书いてないところがあったら必ず指摘してね!
1.オプションメニューとサブメニューの実装
オプションメニュー:最も一般的なメニューで、Androidではoption menuと呼ばれています.オプションメニューは最大6つのメニュー項目しか表示できません.6つを超えると、6番目のメニュー項目はシステムによって「もっと」というサブメニューに置き換えられます.もともと表示できないメニュー項目はすべて「もっと」メニューのサブメニュー項目として表示されます.
サブメニュー:Androidでサブメニューをクリックすると、懸濁ウィンドウにサブメニューが表示されます.サブメニューはネストをサポートしていません.つまり、サブメニューに他のサブメニューを含めることはできません.
手順1:サブメニューとオプションメニューを作成します.「myMenu」という名前のAndroidプロジェクトを作成します.MyMenuActivityクラスで、Source→Override/Implement Methodsを右クリックします.オプションメニューはonCreateOptionsMenu()メソッドで生成されます.コードは次のとおりです.
public boolean onCreateOptionsMenu(Menu menu) { //
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu); //
menu.add(1,1,1," ");
menu.add(1,2,2," "); //
menu.add(1,3,3," ");
menu.add(1,4,4," ");
menu.add(1,5,5," ");
menu.add(1,6,6," ");
menu.add(1,7,7," "); //menu.add(int groupId, int itemId, int order, CharSequence title);
menu.add(1,8,8," ");
SubMenu submenu=menu.addSubMenu(" ");//
submenu.add(1,1,1," ");
submenu.add(1,2,2," ");
submenu.add(1,3,3," ");
submenu.add(1,4,4," ");
return true;
}
手順2:応答メニュー.onOptionsItemSelected(MenuItem)は、メニュー項目がクリックされるたびにandroidがメソッドを呼び出し、クリックされたメニュー項目に入力します.
public boolean onOptionsItemSelected(MenuItem item) { //
// TODO Auto-generated method stub
b1.setText(item.getTitle()); // ,b1 title,
return true;
}
2.コンテキストメニューの実装
コンテキストメニュー:Androidでビューコントロールを長押しして表示されるメニューで、windowsが右クリックしてポップアップするメニューであるコンテキストメニューをクリックします.
手順1:コンテキストメニューの登録
public class MyMenuActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1=(Button) findViewById(R.id.b1); // b1
this.registerForContextMenu(b1); //
}
Button b1;
手順2:コンテキストメニューの生成
public void onCreateContextMenu(ContextMenu menu, View v, //
ContextMenuInfo menuInfo) {
// TODO Auto-generated method stub
if(v.getId()==R.id.b1)
{
menu.clear(); // ( )
menu.setHeaderTitle(" "); //
menu.add(0, 1, Menu.NONE, " "); //
menu.add(0, 2, Menu.NONE, " ");
menu.add(0, 3, Menu.NONE, " ");
menu.add(0, 4, Menu.NONE, " ");
}
}
手順2:コンテキストメニューへの応答
public boolean onContextItemSelected(MenuItem item) { //
// TODO Auto-generated method stub
t1.setText(item.getTitle());
return true;
}
悟る
サブメニューを作るとき、最初はデフォルトのMenuにサブメニューを追加しようとしました.もちろん失敗しました.SubMenuサブメニュークラスのオブジェクトだけがサブメニューを含めることができるからです.また、サブメニューの応答でonOptionsItemSelected(MenuItem)をうっかり書き間違えたため、私はずっと実現できませんでした.コンテキストメニューを作成するときは、コンテキストメニューをポップアップするコントロールにコンテキストメニューを登録することを忘れないでください.Androidを学ぶのもしばらくの間、想像していたほど難しくないことに気づきました.フォームのジャンプやメニュー、その他の内容をするときでも、正しい手順や方法をマスターすれば、必ずできます.でも、気をつけなきゃいけないんだよ、书いてないところがあったら必ず指摘してね!