如题,我在ListView上放了SeekBar,可是SeekBar的进度不能拖,只能用点的。希望 高手 解答 谢谢如图,前后的Button都可以点击
解决方案 »
- dialog遮挡后面的activity问题
- TabWidget类找不到(The following classes could not be found:- TabWidget)
- android如何实现动画循环播放??
- 求助:各位android大神们,请帮忙推荐一个关于android系统移植与底层开发的书
- Android 中NDK问题
- 仿网易侧边栏,使用slidingmenu时怎么实现广告banner
- Android无法创建虚拟机
- 运行时传数据报错.帮看看.
- 在 Runnable 中使用 notifyDataSetChanged 进行ListView刷新问题
- 在使用ubantu 16.04编译Andriod7.1时遇到了 [ninja_wrapper] Error 1 问题,求大佬救助
- 命令行使用sqlte3 database is locked的问题
- 使用Gson解析json报错了,哪位英雄看下。。
HashMap<String, Object> item) {
//是否是正在播放的item
boolean isCurrent = false;
if (item.get(RECORD_INFO_IS_PLAYING) != null
&& (Boolean) item.get(RECORD_INFO_IS_PLAYING)) {
isCurrent = true;
holder.layout.setVisibility(View.VISIBLE);
String s = Utils.formatDuration((Integer) item.get(RECORD_INFO_DURATION));
holder.tvTotalTime.setText(s);
if (playState == STATE_PLAY) {
holder.ibPlay.setImageResource(R.drawable.sr_list_pause_button);
} else if (playState == STATE_PAUSE) {
holder.ibPlay.setImageResource(R.drawable.sr_list_play_button);
} holder.sb.setMax((Integer) item.get(RECORD_INFO_DURATION));
if (item.get(RECORD_INFO_PROGRESS) != null) {
holder.tvCurrentPlayTime.setText(Utils.formatDuration((Integer) item.get(RECORD_INFO_PROGRESS)));
holder.sb.setProgress((Integer) item.get(RECORD_INFO_PROGRESS));
} else {
holder.tvCurrentPlayTime.setText(Utils.formatDuration(0));
}
} else {
isCurrent = false;
holder.layout.setVisibility(View.INVISIBLE);
holder.ibPlay.setImageResource(R.drawable.sr_list_play_button);
} //将position放到要监听的button和layout的tag里,在onClick里取出,即可得到当前点击的view
holder.ibDelete.setTag(isCurrent);
holder.listItem.setTag(isCurrent); holder.tvName.setText((item.get(RECORD_INFO_NAME) + "").replace('-', ':'));
holder.tvLastModifyTime.setText(item.get(RECORD_INFO_LAST_MODIFIED_TIME) + "");
holder.ibDelete.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
if (playState == STATE_PLAY) {
sendMessage(MSG_TOAST_WAIT_PLAY_OVER);
return;
} else if (playState == STATE_PAUSE) {
if (((Boolean) v.getTag())) {
// 发送消息,删除当前暂停的item
sendMessage(MSG_DELETE_PAUSE);
playState = STATE_IDLE;
return;
}
} // 先删除文件
FileHelper.deleteFile(data.get(
position).get(
RECORD_INFO_PATH) + "");
// 将要删除的item从data中删除
data.remove(position);
// 更新显示
SoundListAdapter.this.notifyDataSetChanged();
sendMessage(MSG_TOAST_DELETE_SUCCESS);
}
}); holder.layout.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
}
}); holder.sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override
public void onStopTrackingTouch(SeekBar seekBar) {
} @Override
public void onStartTrackingTouch(SeekBar seekBar) {
} @Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (fromUser)
// 只处理来自用户拖动的进度改变
sendMessage(MSG_PLAY_SEEKTO, progress);
}
}); // 同上面的ibplay的监听 ,改动小, 监听点击item时播放暂停等操作
holder.listItem.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
currentPlay = position;
switch (playState) {
case STATE_IDLE:
playState = STATE_PLAY;
sendMessage(MSG_PLAY_START, position);
break;
case STATE_PLAY:
if (!((Boolean) v.getTag())) {
sendMessage(MSG_PLAY_START, position);
break;
} else {
playState = STATE_PAUSE;
sendMessage(MSG_PLAY_PAUSE);
} break;
case STATE_PAUSE:
playState = STATE_PLAY;
if (!((Boolean) v.getTag())) {
sendMessage(MSG_PLAY_START, position); } else {
sendMessage(MSG_PLAY_RESTART);
} break;
}
}
}); //监听长按事件,弹出重命名对话框
holder.listItem.setOnLongClickListener(new OnLongClickListener() { @Override
public boolean onLongClick(View v) {
if (playState == STATE_PLAY || playState == STATE_PAUSE) {
sendMessage(MSG_TOAST_WAIT_PLAY_COMPLETE);
return true;
} AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(R.string.rename);
View view = LayoutInflater.from(context).inflate(R.layout.rename_dialog_layout, null);
final EditText editText = (EditText) view.findViewById(R.id.edt_new_name);
FileNameTextWatcher watcher = new FileNameTextWatcher();
builder.setView(view);
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String newName = editText.getText().toString();
if (newName.equals("") || newName == null) {
dialog.dismiss();
return;
} String newPath = path.substring(0, path
.lastIndexOf('/') + 1)
+ newName
+ path.substring(path.lastIndexOf('.'),
path.length());
FileHelper.rename(path, newPath);
//
sendMessage(MSG_UPDATE_DIS);
dialog.dismiss();
}
});
builder.setNegativeButton(R.string.cancel, null);
AlertDialog dialog = builder.create();
dialog.show();
watcher.setButton(dialog.getButton(AlertDialog.BUTTON_POSITIVE));
editText.addTextChangedListener(watcher);
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false);
path = data.get(position).get(
RECORD_INFO_PATH) + "";
return true;
}
});
}
public void onStopTrackingTouch(SeekBar seekBar) {
} @Override
public void onStartTrackingTouch(SeekBar seekBar) {
} @Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if (fromUser)
// 只处理来自用户拖动的进度改变
sendMessage(MSG_PLAY_SEEKTO, progress);
}
});这里是 seekbar的监听吧!! 日志打印能响应吗??
boolean fromUser) {
if (fromUser)
// 只处理来自用户拖动的进度改变
sendMessage(MSG_PLAY_SEEKTO, progress);
}
这个方法 能调用???
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
ViewHolder vHollder = (ViewHolder) arg0.getTag();
mSeekBar = vHollder.seek;
mSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar arg0) {
Log.i("TAG", "onStopTrackingTouch");
} public void onStartTrackingTouch(SeekBar arg0) {
Log.i("TAG", "onStartTrackingTouch");
} public void onProgressChanged(SeekBar arg0, int arg1,
boolean arg2) {
Log.i("TAG", "onProgressChanged");
}
});
}
});