我的听众有问题。我已经尝试了所有方法,包括在课堂上实现它,在视图中调用一个新方法。似乎没有任何作用。抽屉的外观和行为均正常,但是无论我单击哪个项目,都不会发生任何事情。 我遵循了获取Navigationview并将其设置为侦听器的标准过程。 请在下面找到代码。感谢您能提供的任何帮助。也许我想念一些东西。
公共类MainActivity扩展了AppCompatActivity {
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mActionBarDrawerToggle;
NavigationView navigationView;
MemeMainFragment memeMainFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout = findViewById(R.id.drawer);
mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open, R.string.close);
mDrawerLayout.addDrawerListener(mActionBarDrawerToggle);
mActionBarDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
menuItem.setChecked(true);
Log.i("NavMenu: ", "listening");
if (menuItem.getItemId() == R.id.memeCreator) {
Log.i("NavMenu: ", "listenign");
Toast.makeText(getApplicationContext(), "Listening", Toast.LENGTH_SHORT).show();
}
return true;
}
});
try {
memeMainFragment = (MemeMainFragment) getSupportFragmentManager().findFragmentById(R.id.fragmentMainMeme);
} catch (NullPointerException e) {
e.printStackTrace();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mActionBarDrawerToggle.onOptionsItemSelected(item)){
return true;
}
return super.onOptionsItemSelected(item);
}
}