簡體   English   中英

setSupportActionBar() 在 android studio 4.0 中不起作用

[英]setSupportActionBar( ) is not working in android studio 4.0

我正在嘗試在我的 Activity 上創建一個自定義工具欄,但在我啟動應用程序時它崩潰了我為 setSupportActionBar 編寫的代碼如下:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

它要求創建 setSupportActionBar 的方法並出現以下錯誤

D:\\AndriodSDK\\LcitNewDemo\\app\\src\\main\\java\\com\\lcit\\lcitnewdemo\\SetActivity.java:23: error: incompatible types: android.widget.Toolbar 無法轉換為 androidx.appcompat.widget.Toolbar setSupportActionBar(工具欄);

當我嘗試創建 setSupportActionBar() 的方法時,它在 logcat 中顯示了這個錯誤,我在下面的答案中提到過

這是一個 Logcat

--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lcit.lcitnewdemo, PID: 4372
java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.lcit.lcitnewdemo/com.lcit.lcitnewdemo.SetActivity}: 
java.lang.ClassCastException: androidx.appcompat.widget.Toolbar cannot be cast to 
android.widget.Toolbar
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3356)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
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:2049)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7523)
    at java.lang.reflect.Method.invoke(Native Method)
    at 
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
    Caused by: java.lang.ClassCastException: androidx.appcompat.widget.Toolbar cannot 
    be cast to android.widget.Toolbar
    at com.lcit.lcitnewdemo.SetActivity.onCreate(SetActivity.java:22)
    at android.app.Activity.performCreate(Activity.java:7984)
    at android.app.Activity.performCreate(Activity.java:7973)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3329)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500) 
    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:2049) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:223) 
    at android.app.ActivityThread.main(ActivityThread.java:7523) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run
    (RuntimeInit.java:592) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941) 
    I/Process: Sending signal. PID: 4372 SIG: 9

感謝您分享您的 logcat .... 所以我從 logcat 中可以看到您錯誤地導入了您的工具欄

androidx.appcompat.widget.Toolbar 無法轉換為 android.widget.Toolbar

具體參見上面的錯誤,現在您需要做的是檢查您的導入並更改行

導入 android.widget.Toolbar

導入 androidx.appcompat.widget.Toolbar

在 xml 文件中

<androidx.appcompat.widget.Toolbar
    android:id="@+id/yourID"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

</androidx.appcompat.widget.Toolbar>

在java文件中

像這樣導入。

 import androidx.appcompat.widget.Toolbar;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM