Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在com.nightonke:boommenu库中的每个子菜单项上添加click Listener?_Android - Fatal编程技术网

Android 如何在com.nightonke:boommenu库中的每个子菜单项上添加click Listener?

Android 如何在com.nightonke:boommenu库中的每个子菜单项上添加click Listener?,android,Android,我在菜单上看到了很多讨论。但我没有看到任何关于每次单击以下菜单项时事件处理的功能,在这些菜单项中,单击BoomMenuButton后会显示这些功能。 我一直在阅读所有的解决方案,但没有一个能帮助我。这是我的代码 活动\u mail.xml <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool

我在菜单上看到了很多讨论。但我没有看到任何关于每次单击以下菜单项时事件处理的功能,在这些菜单项中,单击BoomMenuButton后会显示这些功能。

我一直在阅读所有的解决方案,但没有一个能帮助我。这是我的代码
活动\u mail.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_simple_circle_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <com.nightonke.boommenu.BoomMenuButton
        android:id="@+id/bmb3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:bmb_normalColor="@android:color/holo_blue_dark"
        app:bmb_highlightedColor="@android:color/holo_blue_bright"
        app:bmb_buttonEnum="textOutsideCircle"
        app:bmb_piecePlaceEnum="piecePlace_share"
        app:bmb_buttonPlaceEnum="buttonPlace_custom">

        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:src="@drawable/middle_big_button_trans"
            android:layout_gravity="center" />

    </com.nightonke.boommenu.BoomMenuButton>
</LinearLayout>


活动类为

public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
private BoomMenuButton boomMenuButton;

public MainActivity() {
    Log.d(TAG,"Inside MainActivity's default Constructor");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d(TAG,"Setting the layout before it's in inflates");
    setContentView(R.layout.activity_main);
    Log.d(TAG,"Before initializing Bmb3");
    initializeBmb3();
    Log.d(TAG,"After initializing Bmb3");
}

private void initializeBmb3() {
    Log.d(TAG,"Inside initializeBmb3()");
    BoomMenuButton bmb = (BoomMenuButton) findViewById(R.id.bmb3);
    for (int i = 0; i < 3; i++) {
        Log.d(TAG,"Inside for loop -> Before adding builder");
        bmb.addBuilder(BuilderManager.getTextOutsideCircleButtonBuilderWithDifferentPieceColor());
        Log.d(TAG,"Inside for loop -> After adding builder");
    }


    float w = Util.dp2px(80);
    float h = Util.dp2px(96);
    float h_0_5 = h / 2;
    float h_1_5 = h * 1.5f;
    float hm = bmb.getButtonHorizontalMargin();
    float vm = bmb.getButtonVerticalMargin();
    float vm_0_5 = vm / 2;
    float vm_1_5 = vm * 1.5f;

    bmb.getCustomButtonPlacePositions().add(new PointF(-w - hm, +h_0_5 + vm_0_5));
    bmb.getCustomButtonPlacePositions().add(new PointF(+w + hm, +h_0_5 + vm_0_5));
    bmb.getCustomButtonPlacePositions().add(new PointF(      0, +h_1_5 + vm_1_5));

    for (int i = 0; i < bmb.getPiecePlaceEnum().pieceNumber(); i++) {
       bmb.getBuilder(i)
                .listener(new OnBMClickListener() {
                    @Override
                    public void onBoomButtonClick(int index) {
                        // When the boom-button corresponding this builder is clicked.
                        Toast.makeText(MainActivity.this, "Clicked " + index, Toast.LENGTH_SHORT).show();
                    }
                });
    }

    Log.d(TAG,"At the end of initializeBmb3");
}
public类MainActivity扩展了AppCompatActivity{
公共静态最终字符串TAG=“MainActivity”;
私人按钮;
公共活动(){
d(标记,“在MainActivity的默认构造函数中”);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Log.d(标签“在充气前设置布局”);
setContentView(R.layout.activity_main);
Log.d(标记“在初始化Bmb3之前”);
初始化ebmb3();
Log.d(标记“初始化Bmb3后”);
}
私有无效初始值ebmb3(){
Log.d(标记“内部初始化ebmb3()”);
BoomMenuButton bmb=(BoomMenuButton)findViewById(R.id.bmb3);
对于(int i=0;i<3;i++){
Log.d(标记“内部for循环->添加生成器之前”);
bmb.addBuilder(BuilderManager.GetTexOutSideCircleButtonBuilder,具有不同的IECColor());
Log.d(标记“内部for循环->添加生成器后”);
}
float w=Util.dp2px(80);
浮点h=Util.dp2px(96);
浮点数h_0_5=h/2;
浮点数h_1_5=h*1.5f;
float hm=bmb.getButtonHorizontalMargin();
float vm=bmb.getButtonVerticalMargin();
浮动vm_0_5=vm/2;
浮点数vm_1_5=vm*1.5f;
bmb.getCustomButtonPlacePositions().add(新的点f(-w-hm,+h_0_5+vm_0_5));
bmb.getCustomButtonPlacePositions().add(新的点F(+w+hm,+h_0_5+vm_0_5));
bmb.getCustomButtonPlacePositions().add(新的点F(0,+h_1_5+vm_1_5));
对于(int i=0;i
}


如何在boom中显示的每个项目上添加单击功能?

请查看文档

文件摘录:

BMB侦听器

如果要管理方法中的所有单击事件,可以使用 OnBoomListener/OnBoomListenerAdapter:


请看一下文档

文件摘录:

BMB侦听器

如果要管理方法中的所有单击事件,可以使用 OnBoomListener/OnBoomListenerAdapter:


在for循环中构建菜单时,我所做的是:

    for (int i = 0; i < HamBmb.getPiecePlaceEnum().pieceNumber(); i++) {
        HamButton.Builder builder = new HamButton.Builder().rotateImage(true);

        switch (i) {
            case 0:
                builder.normalImageRes(R.drawable.ic_launcher_foreground)
                        .normalText("Menu 1")
                        .listener(new OnBMClickListener() {
                            @Override
                            public void onBoomButtonClick(int index) {
                                HandleBoomMenuClick(index);
                            }
                        });
                break;
            case 1:
                builder.normalImageRes(R.drawable.ic_launcher_foreground)
                        .normalText("Menu 2")
                        .listener(new OnBMClickListener() {
                            @Override
                            public void onBoomButtonClick(int index) {
                                HandleBoomMenuClick(index);
                            }
                        });
                break;
            case 2:
                builder.normalImageRes(R.drawable.ic_launcher_foreground)
                        .normalText("Menu 3")
                        .listener(new OnBMClickListener() {
                            @Override
                            public void onBoomButtonClick(int index) {
                                HandleBoomMenuClick(index);
                            }
                        });
                break;
            default:
        }

        HamBmb.addBuilder(builder);
    }
for(int i=0;i
我有另一种方法,在我的例子中,它打开另一个活动:

private void HandleBoomMenuClick(int index) {
    if (index < HamBmb.getPiecePlaceEnum().pieceNumber()) {
        Intent intent;

        switch (index) {
            case 0:
                intent = new Intent(this, YOURACTIVITY0.class);
                startActivity(intent);
                break;
            case 1:
                intent = new Intent(this, YOURACTIVITY1.class);
                startActivity(intent);
                break;
            case 2:
                intent = new Intent(this, YOURACTIVITY2.class);
                startActivity(intent);
                break;

            default:
        }
    }
}
private void HandleBoomMenuClick(int索引){
如果(索引

很抱歉这么晚才来到游戏中…

在for循环中建立菜单时,我所做的是:

    for (int i = 0; i < HamBmb.getPiecePlaceEnum().pieceNumber(); i++) {
        HamButton.Builder builder = new HamButton.Builder().rotateImage(true);

        switch (i) {
            case 0:
                builder.normalImageRes(R.drawable.ic_launcher_foreground)
                        .normalText("Menu 1")
                        .listener(new OnBMClickListener() {
                            @Override
                            public void onBoomButtonClick(int index) {
                                HandleBoomMenuClick(index);
                            }
                        });
                break;
            case 1:
                builder.normalImageRes(R.drawable.ic_launcher_foreground)
                        .normalText("Menu 2")
                        .listener(new OnBMClickListener() {
                            @Override
                            public void onBoomButtonClick(int index) {
                                HandleBoomMenuClick(index);
                            }
                        });
                break;
            case 2:
                builder.normalImageRes(R.drawable.ic_launcher_foreground)
                        .normalText("Menu 3")
                        .listener(new OnBMClickListener() {
                            @Override
                            public void onBoomButtonClick(int index) {
                                HandleBoomMenuClick(index);
                            }
                        });
                break;
            default:
        }

        HamBmb.addBuilder(builder);
    }
for(int i=0;i