2013-09-16 59 views
0

我现在正在实现一个包含Activity的应用程序,其中包含ListView,当用户在列表视图中选择任何项目时,此视图的背景&文本颜色被更改,所以,我将此更改的代码放在onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)方法中..但是,这不是问题。最初更改视图的ListView背景

的问题是,当我打开的活动,我需要做一个初步选择“用户选择的任何事情之前” ..所以我提出listView.setSelection(index);,但不幸的是,这个代码不调用onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3) ..所以,这个视图并没有改变“背景和文字颜色”。

任何解决方案..?!!! 谢谢,

回答

0

尝试onItemSelected供选择

在列表视图中选择一个IEM不火onItemClick

0

创建YOUT适配器设置选择的方法(或做它在构造函数):

public myAdapter (COntext context, int initialSelectedPos){ 
    setSelectedPos(initialSelectedPos); 
} 

public void setSelectedPos(int pos){ 
    mSelectedPos = pos; 
} 

然后检查你的getView给出的pos是否与mSelectedPos相同。

@Override 
public View getView(..., int pos){ 
    /*convertView stuff*/ 

    if (pos == mSelectedPos){ 
     //Put the background as it is selected 
    }else{ 
     //... 
    } 

    return view; 
} 

在OnItemClickListener的OnItemClick方法中,调用适配器的setSelectedPos方法。 您将解决您评论的问题,以及当您选择的视图在屏幕上不再可见并返回到屏幕时,仍将被标记为选中状态(我确定它与原始背景一起显示)。

0

设定选择

listView.setSelection(index); 

,然后调用

listView.getAdapter().notifyDatasetChanged(); 

我认为这将解决您的问题后,后