Android Listview项目初始选择
我有一个导航抽屉,在三个片段之间导航,当我启动我的应用程序时,会显示片段1。在这种情况下,我希望最初选择nav抽屉列表中的第一项。我遵循以下链接:,基于此,我的适配器中有以下内容Android Listview项目初始选择,android,listview,android-fragments,android-listview,navigation-drawer,Android,Listview,Android Fragments,Android Listview,Navigation Drawer,我有一个导航抽屉,在三个片段之间导航,当我启动我的应用程序时,会显示片段1。在这种情况下,我希望最初选择nav抽屉列表中的第一项。我遵循以下链接:,基于此,我的适配器中有以下内容 if(position==0){ listview.setItemChecked(position, true); } 而且它工作正常,列表中的第一项是预先选择的。但是,当我单击列表中的另一项时,它已被选中,但第一项仍处于选中状态 我已尝试通过设置listview.setItemChecked(po
if(position==0){
listview.setItemChecked(position, true);
}
而且它工作正常,列表中的第一项是预先选择的。但是,当我单击列表中的另一项时,它已被选中,但第一项仍处于选中状态
我已尝试通过设置listview.setItemChecked(position,false)取消选择该项
但这对我不起作用,所以我的初始选择工作正常,但我不能包含它,除非当用户选择其他项目时我可以取消选择它
有人能帮忙吗
*编辑-添加视图*
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView==null){
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.nav_item_layout, null);
}
imgIcon = (ImageView) convertView.findViewById(R.id.nav_item_image);
txtTitle = (TextView) convertView.findViewById(R.id.nav_item_text);
if(position==0)
{
drawerList.setItemChecked(0,true);
}
if(drawerList.isItemChecked(position)){
if(position!=0){
drawerList.setItemChecked(0, false);
}
imgIcon.setImageResource(selectedIconArray[position]);
txtTitle.setTextColor(Color.WHITE);
}else{
imgIcon.setImageResource(unselectedIconArray[position]);
txtTitle.setTextColor(Color.parseColor("#949494"));
}
txtTitle.setText(navDrawerItems.get(position).getTitle());
return convertView;
}
与:
您正在强制始终检查第0行。必须从getViewMethod内部删除两个setItemChecked。将适配器设置为ListView时,请调用setItemChecked。发布getView方法please@SirKuryaki你知道我可能做错了什么吗?就这么简单…非常有用!
if(position==0)
{
drawerList.setItemChecked(0,true);
}