使用 Navigation Drawer 获取不兼容的类型

Getting Incompitable Types with the Navigation Drawer

我正在尝试在 Android Studio 中创建导航抽屉。 我的代码如下:

public class NavigationActivity extends AppCompatActivity {

@SuppressWarnings("deprecation")
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private ListView mList;
private ArrayList<com.zaptech.webdata.model.MenuItem> listMenu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_navigation);
    findViews();
    Toolbar mTool = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mTool);
    getSupportActionBar(). setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeButtonEnabled(true);
    //noinspection deprecation
    mDrawerToggle = new ActionBarDrawerToggle(NavigationActivity.this, mDrawerLayout, R.drawable.ic_drawer, R.string.app_name,
            R.string.app_name) {
        public void onDrawerClosed(View view) {
            invalidateOptionsMenu();
        }

        public void onDrawerOpened(View drawerView) {
            invalidateOptionsMenu();
        }
    };

    mDrawerLayout.setDrawerListener(mDrawerToggle);

    //mList.setAdapter(new CustomAdapter(NavigationActivity.this,));

    //mList.setOnItemClickListener(this);
    FloatingActionButton floatingActionButton = (FloatingActionButton) findViewById(R.id.fab);
    floatingActionButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //noinspection SpellCheckingInspection
            Snackbar.make(view, "Developed By Bandish", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_navigation, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    return id == R.id.action_settings || super.onOptionsItemSelected(item);
}

private void findViews() {
    mDrawerToggle = (DrawerLayout) findViewById(R.id.drawer_layout);
    mList = (ListView) findViewById(R.id.list_slidermenu);
}

当我导入以下内容时:

导入android.support.v4.app.ActionBarDrawerToggle; 导入 android.support.v4.widget.DrawerLayout;

我收到以下错误:

Required import android.support.v4.widget.DrawerLayout; 
Found import android.support.v4.app.ActionBarDrawerToggle;

有人知道问题出在哪里吗?

谢谢!

我的朋友你已经声明了

private DrawerLayout mDrawerToggle;

您应该使用 ActionBarDrawerToggle

你对抽屉布局的引用是错误的

private void findViews() {
     mDrawerToggle = (DrawerLayout) findViewById(R.id.drawer_layout);

应该是

 mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);