BottomNavigationView.OnNavigationItemSelectedListener class must either be declared abstract java
Can't understand what's wrong with my code. The warning is: "class 'Home' must either be declared abstract or implement abstract method 'onNavigationItemSelected(MenuItem)' in 'OnNavigationItemSelectedListener'" I implemented bottom navigation, here is my code:
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.menu.MenuBuilder;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import com.google.android.material.bottomnavigation.BottomNavigationMenu;
import com.google.android.material.bottomnavigation.BottomNavigationView;
public class Home extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.menu);
bottomNavigationView.setSelectedItemId(R.id.page_home);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.page_blogs:
startActivity(new Intent(getApplicationContext(),Blogs.class));
overridePendingTransition(0,0);
return true;
case R.id.page_home:
return true;
case R.id.page_money:
startActivity(new Intent(getApplicationContext(),Money.class));
overridePendingTransition(0,0);
return true;
case R.id.page_serv:
startActivity(new Intent(getApplicationContext(),Services.class));
overridePendingTransition(0,0);
return true;
case R.id.page_user:
startActivity(new Intent(getApplicationContext(),User.class));
overridePendingTransition(0,0);
return true;
}
return false;
}
});
}
}
Ответы (1 шт):
Автор решения: Анастасия
→ Ссылка
Если Вы реализуете интерфейс BottomNavigationView.OnNavigationItemSelectedListener, значит, должны реализовать его метод onNavigationItemSelected(MenuItem).
А у Вас в классе только onCreate().
Решение:
- Или уберите вот эту часть, чтобы класс
Homeне реализовывал интерфейс:
implements BottomNavigationView.OnNavigationItemSelectedListener - Или отдельно пропишите метод, который требуется:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.page_blogs:
startActivity(new Intent(getApplicationContext(),Blogs.class));
overridePendingTransition(0,0);
return true;
case R.id.page_home:
return true;
case R.id.page_money:
startActivity(new Intent(getApplicationContext(),Money.class));
overridePendingTransition(0,0);
return true;
case R.id.page_serv:
startActivity(new Intent(getApplicationContext(),Services.class));
overridePendingTransition(0,0);
return true;
case R.id.page_user:
startActivity(new Intent(getApplicationContext(),User.class));
overridePendingTransition(0,0);
return true;
}
return false;
}
а затем пропишите bottomNavigationView.setOnNavigationItemSelectedListener(this);