2015-10-20 132 views
2

我得到這個錯誤是什麼原因android.support.v7.widget.Toolbar不能轉換到android.widget.Toolbar

Caused by: java.lang.ClassCastException: android.support.v7.widget.Toolbar cannot be cast to android.widget.Toolbar 

我用這個進口import android.support.v7.widget.Toolbar;

這是工具欄的代碼

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    Toolbar tb=(Toolbar)findViewById(R.id.toolbar); 
    tb.inflateMenu(R.menu.main); 
    tb.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      return (onOptionsItemSelected(item)); 
     } 
    }); 
    // getMenuInflater().inflate(R.menu.main, menu); 
    // return true; 
    return(super.onCreateOptionsMenu(menu)); 
} 
+1

檢查兩件事。如果您確實使用支持工具欄類作爲視圖,請檢查您的佈局文件。然後檢查是否將工具欄設置爲supportActionBar(setSupportActionBar(toolbar))。或者,您可以在這裏粘貼xml文件和整個活動來源。 – Muktadir

回答

3

至於很多小部件,Android提供了兩個版本。其中一個包括支持庫和原生支持的一部分。如果您遇到ClassCastException,可能是因爲您在您的佈局中聲明瞭Toolbar而不是<android.support.v7.widget.Toolbar

1

它們是完全獨立的Java類。例如,您無法將java.lang.Double設爲com.moudiz.Restaurant

android.widget.Toolbar原生API級別21和更高。 android.support.v7.widget.Toolbar是一個補丁包,那就是appcompat-v7一部分,因此,若您的應用程序使用一般appcompat-v7(例如,AppCompatActivityTheme.AppCompat),使用android.support.v7.widget.Toolbar回去API級別7

。如果您的應用一般使用本機操作欄,請使用android.widget.Toolbar

相關問題