2017-06-15 5 views
0

私のアンドロイドアプリには、ボタンが付いたアクションバーがあります。ボタンを押すと、3つのドロップダウンオプションが画面に表示されます。ユーザーがボタンの1つを押すと、関数を実行するか、別のアクティビティに移動するなどのコードを実行できるようにしたいと考えています。私のmenu.xmlはそのようにフォーマットされ、うまく動作します。私はあなたがそれらを押すと、ボタンが何かをする方法を持っていないだけです。メニュードロップダウンがクリックされたらコードを実行するにはどうすればよいですか?

<item 
    android:id="@+id/dropMenu" 
    android:title="" 
    app:showAsAction="always" 
    android:icon="@drawable/threedots"> 
    <menu> 
     <item 
      android:id="@+id/pastDays" 
      android:title="Past Days" /> 
     <item 
      android:id="@+id/aboutApp" 
      android:title="About App" /> 
     <item 
      android:id="@+id/setNotifications" 
      android:title="Set Notifications" /> 
    </menu> 
</item> 

答えて

0

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.pastDays: 
      // TODO: Implement functionality here 

      break; 
     case R.id.aboutApp: 
      // TODO: Implement functionality here 

      break; 
     case R.id.setNotifications: 
      // TODO: Implement functionality here 

      break; 
    } 

    return super.onOptionsItemSelected(item); 
} 
、次のようにonOptionsItemSelected()メソッドをオーバーライドします。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId()==android.R.id.home){ 
     mDrawerLayout.openDrawer(GravityCompat.START); 
    } 
    if (item.getItemId()==R.id.pastDays){ 
     //Do something 
    } 
    if (item.getItemId()==R.id.aboutApp){ 
     //Do something 
    } 
    if (item.getItemId()==R.id.setNotifications){ 
     //Do something 
    } 

    return super.onOptionsItemSelected(item); 
} 
0

まず使用オーバーライドされたメソッド、onCreateOptionsMenu()、次のようにメニューを膨張させる:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); // TODO: First param is your menu file 

    return super.onCreateOptionsMenu(menu); 
} 

を...とメニュー項目の1つがクリックされた場合の機能のために:

あなたの活動で
関連する問題