2011-01-14 13 views
7

onMenuItemClickListenerを実装するにはどうすればよいですか?androidでonMenuItemClickListenerを実装する方法

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 

    getMenuInflater().inflate(R.menu.gameoptions, menu); 
    menu.findItem(R.id.menu_item).setIntent(new Intent(this, QMenuActivity.class)); 
    menu.findItem(R.id.back_item).setOnMenuItemClickListener; 
    return true; 
} 

back_itemをクリックすると、ページ内の関数を呼び出すことができます。どうすればいいですか?

+0

質問を再フォーマットすると、現在のソースがコンパイルされることはありません。 – fiction

答えて

9

あなたのアクティビティで非静的関数にアクセスしたいとします。あなたからあまりにも多くの情報がなければ、以下の何のような何かしてみてください:ここで

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuItem item = menu.findItem(R.id.back_item); 
    item.setOnMenuItemClickListener(new OnMenuItemClickListener() { 

     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      YourActivity.this.someFunctionInYourActivity(); 
      return true; 
     } 
    }); 
    return true; 
} 
+0

ちょうど私が必要としたことありがとう – Beginner

4

を私はxmlメニューを膨らませるつもりならば、私はそれを行う方法です。

、それが呼び出されたときに、私は最初のメニューを膨らま:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.test, menu); 
    return true; 
} 

を押し待つとIDが押されたチェック:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.item1: 
      ... code ... 
      return true; 
     case R.id.item2: 
      ... code ... 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

・ホープ、このことができます!

1
item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() 

新しいコードの後に​​MenuItemを含むコードに変更してください。

関連する問題