ClassCastException:java.lang.ClassCastException:android.widget.LinearLayout $ LayoutParams无法强制转换为android.support.v4.widget.DrawerLayout

时间:2015-05-13 17:19:41

标签: java android xml android-layout

我为导航抽屉编写了一个程序,该程序运行良好,但最近我尝试为{1}}设置了个人资料图片和 class User extends Model implements AuthenticatableContract, CanResetPasswordContract { /* user related code for passwords and built in things*/ public function regions () { return $this->hasMany('App\Region'); } public function markers () { return $this->hasMany('App\Marker'); } } ,之后它给了我一个{{ 1}}。

main_activity.xml:当我删除ImageViewTextView内部的ClassCastException时,其工作正常。

LinearLayout

MainActivity.java:我的带有ImageView和TextView的导航抽屉的代码。

ImageView

Logcat:

TextView

我应该更改我的XML代码还是java代码?

谢谢!

2 个答案:

答案 0 :(得分:1)

您在此处出现错误drawer.closeDrawer(drawerList);我认为您应该这样做:drawer.closeDrawer(drawer)。您使用了错误的布局,只需更改为DrawerLayout。

答案 1 :(得分:1)

您正在尝试关闭不是“抽屉”的列表。尝试使用 drawer.closeDrawers(); 代替drawer.closeDrawer(drawerList)

drawerList.setOnItemClickListener(new OnItemClickListener() {

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int 
        position, long id) {
        displayView(position);
        drawer.closeDrawers();
    } 

    private void selectItem(int position) {
        // TODO Auto-generated method stub 
        drawerList.setItemChecked(position, true);
        setTitle(Menus[position]);

    } 

    public void setTitle(String title) {
        getSupportActionBar().setTitle(title);

    } 
});