Java 在导航抽屉中将所选项目加粗,但在应用程序启动时无法将第一个项目加粗
因此,我试图在导航抽屉中将所选项目的文本设置为粗体,就像Google Play应用程序一样,但我无法在首次启动应用程序时将第一个项目设置为粗体 这就是我用来让它工作的东西Java 在导航抽屉中将所选项目加粗,但在应用程序启动时无法将第一个项目加粗,java,android,Java,Android,因此,我试图在导航抽屉中将所选项目的文本设置为粗体,就像Google Play应用程序一样,但我无法在首次启动应用程序时将第一个项目设置为粗体 这就是我用来让它工作的东西 private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> p
private class DrawerItemClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
setNavDrawerItemNormal();
TextView TV = (TextView) view.findViewById(R.id.text1);
TV.setTypeface(null, Typeface.BOLD);
selectItem(position);
}
}
public void setNavDrawerItemNormal() {
for (int i = 0; i < mDrawerList.getChildCount(); i++) {
View view = mDrawerList.getChildAt(i);
TextView TV = ((TextView) view.findViewById(R.id.text1));
TV.setTypeface(null, Typeface.NORMAL);
}
}
LogCat说它是由java.lang.NullPointerException引起的
知道为什么会这样吗?如何使其工作?问题在于mDrawerList.getChildAt0返回第一个可见的子项,而不是列表中的第一项
您可能希望在适配器类的getView方法中获得结果:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
if(position == 0) {
// set bold text here
}
...
}
希望您没有在setContentView之前添加这些行,并且抽屉列表已正确初始化。另外,尝试设置抽屉中的字体适配器,以便在没有onClick事件的情况下调用它
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
if(position == 0) {
// set bold text here
}
...
}