Aam*_*mir 4 android android-widget android-layout android-listview
在我的一个活动中,我有多个ListView控件.说清单1,清单2和清单3.在列表1项目的单击上,我从Web服务加载列表2和列表3的数据.点击项目的背景将突出显示.我是通过跟随选择器实现的.
<item android:drawable="@drawable/item_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/item_focused" android:state_focused="false"
android:state_pressed="false"
android:state_selected="true"/>
<item android:state_activated="true" android:drawable="@drawable/item_selected"/>
Run Code Online (Sandbox Code Playgroud)
如您所见,我已指定android:state_activated ="true"来更改单击/点击项目的BG.这很好用.
实际上我想阻止点击项目被选中/突出显示如果正在加载某些其他项目的数据...就像
list1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// load data if no other call to web service is in progress
if (_isNotLoadingData) {
loadList2AndList3DataUsingWebService();
} else {
//Stop This Item From selected/highlighted
//BUT none of the following work. .. Item is always Selected
view.setSelected(false);
//view.setActivated(false);
//view.setEnabled(false);
}
}
});
Run Code Online (Sandbox Code Playgroud)
上面的代码停止多个调用被定向到我们的Web服务,但如果没有为该ListView项调用Web服务,我无法阻止该项突出显示/激活.
我该如何解决这个问题?
2012年3月19日晚8点08分编辑:还没有正确答复...我被困住等待任何帮助
Rei*_*ier 11
我几天前遇到过同样的问题.解决方案不是设置view.setItemChecked(false),而是在.onItemClick()
-method中调用listview并设置listview.setItemChecked(position, false)
.这解决了我.
例:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long arg3) {
// load data if no other call to web service is in progress
if (_isNotLoadingData) {
loadList2AndList3DataUsingWebService();
} else {
ListView lv = (ListView) adapterView;
lv.setItemChecked(position, false);
}
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4542 次 |
最近记录: |