首先,我想解释一下“以编程方式”的含义,在我的情况下是“完全没有XML” 。
我的目标很简单,但是我正努力以编程方式进行所有操作:
在屏幕底部放置一个BottomNavigationView
使用4个按钮为BottomNavigationView充气,每个按钮都有一个图标,但没有标题
在选择侦听器上进行设置,并在选择它时,找出被选中的项
这是我为1和2提供的代码,但没有为3:
public class BottomBarLayout extends RelativeLayout {
BottomNavigationView bottomBar;
public BottomBarLayout(Context context) {
super(context);
configureBottomBar();
}
private void configureBottomBar() {
bottomBar = new BottomNavigationView(this.getContext());
// Inflate bottom bar with 4 items without titles but with icons
bottomBar.getMenu().add(null).setIcon(R.drawable.ic_...);
bottomBar.getMenu().add(null).setIcon(R.drawable.ic_...);
bottomBar.getMenu().add(null).setIcon(R.drawable.ic_...);
bottomBar.getMenu().add(null).setIcon(R.drawable.ic_...);
bottomBar.setOnNavigationItemSelectedListener(menuItem -> onSelectNavigationItem(menuItem));
// Add layout rules to stick bottomBar to bottom of screen
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
addView(bottomBar, params);
}
}
private boolean onSelectNavigationItem(MenuItem item) {
// -------------------->Question here<------------------------
return true;
}
我的问题是,在onSelectNavigationItem
侦听器中,我如何知道选择了哪个项目?我没有为这4个项目分配ID。如果我可以分配ID,该怎么办?如果没有,我如何知道选择了哪个项目?谢谢。