android listview 长按事件setOnItemLongClickListener不响应问题
2015-11-06 19:49
477 查看
我的Listview同时设置了2个监听事件
setOnItemLongClickListener(长按事件)
和点击事件,但是点击事件我是在adapter的getView()里面设置的,
代码如下:
// 监听点击事件
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
currentMusic = position;
Log.i("你的选择 ",
"歌曲第" + currentMusic + "首 "
+ musicList.get(currentMusic).getTitle());
natureBinder.startPlay(currentMusic, 0);
// 按钮背景设置为正在播放
if (natureBinder.isPlaying()) {
btnStartStop.setBackgroundResource(R.drawable.pause);
}
}
});这样:长按事件就无法响应啦。
解决方法是:
把Listview的点击事件写在adapter外部
点击事件代码:
长按事件代码:
这样就都可以响应啦!具体原因我不知情,求高手指教,我是突发奇想尝试成功的。
setOnItemLongClickListener(长按事件)
和点击事件,但是点击事件我是在adapter的getView()里面设置的,
代码如下:
// 监听点击事件
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
currentMusic = position;
Log.i("你的选择 ",
"歌曲第" + currentMusic + "首 "
+ musicList.get(currentMusic).getTitle());
natureBinder.startPlay(currentMusic, 0);
// 按钮背景设置为正在播放
if (natureBinder.isPlaying()) {
btnStartStop.setBackgroundResource(R.drawable.pause);
}
}
});这样:长按事件就无法响应啦。
解决方法是:
把Listview的点击事件写在adapter外部
点击事件代码:
lvSongs.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub currentMusic = position; Log.i("你的选择 ", "歌曲第" + currentMusic + "首 " + musicList.get(currentMusic).getTitle()); natureBinder.startPlay(currentMusic, 0); // 按钮背景设置为正在播放 if (natureBinder.isPlaying()) { btnStartStop.setBackgroundResource(R.drawable.pause); } } });
长按事件代码:
lvSongs.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub final int pos = position; Log.e("", "onItemLongClick"); AlertDialog.Builder builder = new AlertDialog.Builder( MainActivity.this); builder.setTitle("删除该条目"); builder.setMessage("确认要删除该条目吗?"); builder.setPositiveButton("删除", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // Music music = // MusicUtils.sMusicList.remove(pos); // mMusicListAdapter.notifyDataSetChanged(); // if (new File(music.getUri()).delete()) { // scanSDCard(); // } } }); builder.setNegativeButton("取消", null); builder.create().show(); // 有人说一定要改成true,但是flase也是可以啊 return false; } });
这样就都可以响应啦!具体原因我不知情,求高手指教,我是突发奇想尝试成功的。
相关文章推荐
- 发本地广播
- Android layout布局的优化
- Android 自定义Service 的几种实现方法
- service 里面弹对话框
- android Spinner默认不选中
- S3_bucketname
- ListView的分割线
- Android:layer-list,shape,selector详解
- Android Material Design之Toolbar与Palette实践
- android view 绘制过程
- Android框架之Android Validation表单验证框架
- Android lunch分析以及产品分支构建
- [置顶] Android m6.0权限问题调用封装utils类 - Permission in Android M
- 在AndroidStudio中使用GreenDAO
- Android模拟器加速,BIOS中VT-x选项不可改,Intel硬件加速软件的安装
- android 动画
- android 告别龟速,快速更新sdk
- 【Android学习笔记】偷摸持久运行的Service
- Android Studio下导出jar包和aar包
- Android Studio下导出jar包和aar包