5

コードでこの警告を受け取り続けており、完了期限が近づいているため心配し始めています。メイン アクティビティに DrawerLayout があり、Android Studio 独自のナビゲーション ドロワー アクティビティを使用していますが、DrawerLayout setDrawerListener が非推奨になったため、コードを少し変更する必要がありました。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Firebase reference to main application URL and 'today's' matches
    Firebase mainRef = new Firebase(cons.getFirebaseUrl());

    //DrawerLayout settings for the navigation drawer
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    //Retrieve the navigation drawer and set it's listener for menu item presses
    navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

で警告が表示されdrawer.addDrawerListener(toggle)ますnavigationView.setNavigationItemSelectedListener(this)

私のコードのさらに下に、私はこのメソッドでもそれを受け取っています:

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) // This line gets the warning {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

何が原因なのかわかる方、よろしくお願いします。この問題を検索しましたが、廃止後のメソッドの例が見つかりませんでした。

4

1 に答える 1

1

ActionBarDrawerTogglesupport-v7-appcompat で使用していることを確認してください。

コードを置き換えるdrawerLayout.setDrawerListener(actionBarDrawerToggle);

drawerLayout.addDrawerListener(actionBarDrawerToggle);

最後に、null ドロワーと null ナビゲーションビューを次のように確認します。

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

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        assert drawer != null;
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        assert navigationView != null;
        navigationView.setNavigationItemSelectedListener(this);
于 2016-08-18T03:15:10.470 に答える