ここで私はすべてのアクティビティーに同じDrawerLayoutを持たせるためにDrawerBaseアクティビティーを作成しますが、私がこのようにすると、新しいアクティビティーを開始する新しいインテントを開始するときに退屈なことが起こりました引き出しを閉じなかった。DrawerLayoutがドロワーを閉じなかった
ここに私のコードは、誰かが私を助けることを願っています。
package cn.rezero.utool;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import cn.rezero.utool.Note.NotelistActivity;
/**
* Created by ReZero on 2017/4/5.
*/
public class DrawerBase extends AppCompatActivity {
protected DrawerLayout mDrawerLayout;
protected NavigationView navigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setCheckedItem(R.id.nav_moment);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_lbs:
startActivity(new Intent(DrawerBase.this, BmapActivity.class));
mDrawerLayout.closeDrawers();
break;
case R.id.nav_note:
startActivity(new Intent(DrawerBase.this, NotelistActivity.class));
mDrawerLayout.closeDrawers();
break;
case R.id.nav_web:
startActivity(new Intent(DrawerBase.this, BrowserActivity.class));
mDrawerLayout.closeDrawers();
default:
}
return true;
}
});
}
}
this a test demo :
public class MainActivity extends DrawerBase {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
申し訳ありませんが動作しませんでした。さらに、意図は新しいアクティビティを開始していないようです。 – Rezero
@Rezero更新された回答を –
お寄せいただきありがとうございます。 – Rezero