2016-05-06 11 views
0

私は現在、初めてのAndroidアプリを開発しているので、fab-speed-dialを使用しています。フローティングアクションボタンを実装して、オプションが自分のニーズに合うようにしました。しかし、今はメニュー項目にアクションを割り当てる必要があります。スピードダイヤルフローティングアクションボタン付きメニューアイテムの選択

など。私が試したいくつかのリスナーを追加しますが、明らかに私が何か間違ったことをやってきた

menu items

:1は、以下のスクリーンショットに「部屋を追加」をクリックした場合、私は、入力フィールドを表示したいです。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="16dp"> 

    <io.github.yavski.fabspeeddial.FabSpeedDial 
     android:id="@+id/fab_speed_dial" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     app:fabGravity="bottom_end" 
     app:fabMenu="@menu/menu_speeddial" 
     app:miniFabBackgroundTint="@android:color/white" 
     app:miniFabDrawableTint="?attr/colorPrimaryDark" 
     app:miniFabTitleTextColor="?attr/colorPrimaryDark" /> 

</FrameLayout> 

そして、少なくとも最後のではなく、menu_speeddial.xml

でメニュー項目を:これは私のactivity_main.xmlはこのようになります私のMainActivity.javaで私が現在使用しているコード

FabSpeedDial fabSpeedDial = (FabSpeedDial) findViewById(R.id.fab_speed_dial); 
    fabSpeedDial.setMenuListener(new SimpleMenuListenerAdapter() { 
     @Override 
     public boolean onMenuItemSelected(MenuItem menuItem) { 
      //what do I do here? 
      return false; 
     } 
    }); 

です

<?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:id="@+id/add_room" 
     android:icon="@drawable/ic_action_home" 
     android:title="@string/menu_item_room" 
     android:onClick="gotClicked"/> 
    <item 
     android:id="@+id/add_furniture" 
     android:icon="@drawable/ic_action_armchair" 
     android:title="@string/menu_item_furniture"/> 
</menu> 

これに対処するための任意のヘルプは非常に高く評価されるでしょう。

答えて

1

私はこのライブラリを使用していません。しかし、あなたのコードを見て、私は問題がMenuListenerにあると推測することができます。

@Override 
     public boolean onMenuItemSelected(MenuItem menuItem) { 
      if (menuItem.getItemId()==1){ 
       System.out.print("number 1 clicked"); 
      } 
      return false; 
     } 

私は、リソースIDと等しいかどうかをチェックする必要があります。このように、

if (menuItem.getItemId() == R.id.add_room){ 
       System.out.print("number 1 clicked"); 
      } 
+0

これはきれいな解決策ですが、それは私のために動作するかどうかわからない、あなたがより多くのアイテムを持っている場合) –

+0

は、あなたがするのではなく、スイッチケースを使用することができますのif-else。 @ Jamie-505 – Bob

+0

私は2つのアイテムしか使っていないので、もしそうなら、そうだと思います。 –

関連する問題