У нас есть эта строка кода в Класс A
drawer.addDrawerListener(toggle);
При нажатии ctrl
+ left click
мы получаем этот код, который нельзя изменить.
public void addDrawerListener(@NonNull DrawerListener listener) {
if (listener == null) {
return;
}
if (mListeners == null) {
mListeners = new ArrayList<DrawerListener>();
}
mListeners.add(listener);
}
Мы бы хотели, чтобы он отображал null
, если слушатель null
, поэтому мы Override
этот метод и добавляем в Класс A .
@Override
public void addDrawerListener(@NonNull DrawerLayout.DrawerListener listener) {
if (listener == null) {
Toast.makeText(getApplication(),"null",Toast.LENGTH_LONG).show();
return;
}
if (mListeners == null) {
mListeners = new ArrayList<DrawerLayout.DrawerListener>();
}
mListeners.add(listener);
}
Но тогда мы получим
Method does not override method from its superclass
Что нам делать, если мы хотим изменить addDrawerListener
?
Редактировать
Мой класс распространяется на AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
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);
if (savedInstanceState == null) {
Toast.makeText(getApplication(), "null", Toast.LENGTH_LONG).show();
RssFragment fragment = new RssFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
drawer.addDrawerListener(toggle);
}
Панель навигации не работает после добавления части кода
if (savedInstanceState == null) {
Toast.makeText(getApplication(), "null", Toast.LENGTH_LONG).show();
RssFragment fragment = new RssFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
}
Но если я уберу, навигационный ящик работает нормально. Мы бы хотели отлаживать оттуда.