0

I have written this code:

@SuppressLint("WrongViewCast") FloatingActionButton fab = findViewById(R.id.button);
fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show();
    }
});

If I execute this code I get the following error:

2020-12-05 23:39:53.394 28790-28790/? E/e.monyconverte: Unknown bits set in runtime_flags: 0x28000
2020-12-05 23:39:53.663 28790-28790/com.example.monyconverter E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.monyconverter, PID: 28790
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.monyconverter/com.example.monyconverter.MainActivity}: java.lang.ClassCastException: androidx.appcompat.widget.AppCompatButton cannot be cast to com.google.android.material.floatingactionbutton.FloatingActionButton
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3382)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3521)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2128)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7711)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
     Caused by: java.lang.ClassCastException: androidx.appcompat.widget.AppCompatButton cannot be cast to com.google.android.material.floatingactionbutton.FloatingActionButton
        at com.example.monyconverter.MainActivity.onCreate(MainActivity.java:40)
        at android.app.Activity.performCreate(Activity.java:7852)
        at android.app.Activity.performCreate(Activity.java:7841)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1325)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3357)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3521) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2128) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7711) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 

Why did I get this exception?

flaxel
  • 4,173
  • 4
  • 17
  • 30

1 Answers1

0

You are trying to cast a FloatingActionButton to a normal Button. Solution: Change your Button in your xml file to

<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginBottom="16dp"
        android:src="@drawable/ic_add_black_24dp"
        app:fabSize="normal" />
private static
  • 745
  • 8
  • 17