Sina Moradi
Sina Moradi

Reputation: 61

Boom menu crash

I'm using boom menu for my first time. I get a error when I run my app:

java.lang.ClassCastException: com.nightonke.boommenu.BoomButtons.TextOutsideCircleButton$Builder cannot be cast to com.nightonke.boommenu.BoomButtons.SimpleCircleButton$Builder

This is my XML file:

    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.nightonke.boommenu.BoomMenuButton
        android:id="@+id/bmb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="32dp"
        android:layout_marginBottom="32dp"
        app:bmb_buttonEnum="simpleCircle"
        app:bmb_buttonPlaceEnum="buttonPlace_sc_9_1"
        app:bmb_normalColor="#64DD17"
        app:bmb_piecePlaceEnum="piecePlace_dot_9_1"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

And my JAVA:

    public class MainActivity extends AppCompatActivity {
    BoomMenuButton boomMenuButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        boomMenuButton = (BoomMenuButton) findViewById(R.id.bmb);
        setbmbtn();


    }

    private void setbmbtn() {
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Circle"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Triangle"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Square"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Rectangle"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Rhombus"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Hexagon"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Parallelogram"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Pentagon"));
        boomMenuButton.addBuilder(new TextOutsideCircleButton.Builder().normalText("Trapezoid"));
    }
}

What is this error and how can I fix it?

I'm a novice developer. Thanks for your help.

Upvotes: 0

Views: 146

Answers (1)

user16728174
user16728174

Reputation: 182

In your xml you have written app:bmb_buttonEnum="simpleCircle" but in java you are using another type of button for this library. For example if you want to use TextOutsideCircleButton replace your xml in this way:

<com.nightonke.boommenu.BoomMenuButton
android:id="@+id/bmb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"        
app:bmb_buttonEnum="textOutsideCircle"
app:bmb_piecePlaceEnum="piecePlace_dot_9_1"
app:bmb_buttonPlaceEnum="buttonPlace_sc_9_1"
/>

note that the value for app:bmb_buttonEnum should be exactly same as java when you initialize boomMenuButton.addBuilder("SAME_TYPE_AS_YOUR_XML")

Upvotes: 1

Related Questions