我正在尝试禁用listview上的多个点击事件,比如说按下第一次点击某些媒体从webservice播放,播放时,其他项目需要clickable==false
,媒体播放后,其他列表项目可以点击。
我正在尝试在setClickable(true)
对象上调用setClickable(false)
和ListView
。
答案 0 :(得分:61)
在您的自定义ArrayAdapter overEnabled方法中,如下所示
@Override
public boolean isEnabled(int position) {
return false;
}
答案 1 :(得分:34)
创建自己的ArrayAdapter子类,其中AreAllItemsEnabled()返回false,并定义isEnabled(int position)以返回您要禁用的项目中给定项目的false。
答案 2 :(得分:14)
将其添加到xml
android:listSelector="@android:color/transparent"
答案 3 :(得分:3)
为该列表创建适配器,并覆盖此方法
public boolean isEnabled(int position);
然后在您要停用点击
时返回false
答案 4 :(得分:2)
使用标记管理Click事件。
当您的媒体播放器正在运行时,请使用此方法单击为false。
setClickable(false);
当您的媒体播放器停止或未运行或完全设置时,标记为默认值。
setClickable(true);
答案 5 :(得分:2)
:
private long mLastClickTimeListViewItem = 0;
防止对ListView项目进行多次点击
在listView的侦听器中使用onCreate之后,在我的例子中如下:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (SystemClock.elapsedRealtime() - mLastClickTimeListViewItem < 1000){
return ;
}
mLastClickTimeListViewItem = SystemClock.elapsedRealtime();
//Do your remaining code magic below...
....
....
} // end of onItemClick method
}); // end of setOnItemClickListner
答案 6 :(得分:2)
listView.getChildAt(position).setEnabled(false);
listView.getChildAt(position).setClickable(false);
答案 7 :(得分:1)
上述答案对我没有用,所以我使用list.setEnabled(false)
它为我工作
答案 8 :(得分:0)
或以简单的方式取消注册并注册 OnItemClickListener 可能是一个更好的主意。
答案 9 :(得分:-1)
如果您想要的只是可点击的项目,并显示适当的选择颜色,只需使用
行机器人:listSelector =&#34; @android:彩色/透明&#34;
在布局文件(xml)中的listview中