我正在为Android开发一个播放列表应用程序,它有一个ListView,其中包含歌曲名称(TextView)作为列表项。
当歌曲播放时,我想突出显示列表视图中的项目,直到歌曲结束。这是为了表明当前正在播放哪首歌曲。
我尝试了listview中的setSelection API,但它没有用。
答案 0 :(得分:3)
您的列表项视图必须实现Checkable
界面:
public class CheckableTextView extends TextView implements Checkable {
private boolean mChecked = false;
public CheckableTextView(Context context) {
super(context);
}
public CheckableTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CheckableTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean isChecked() {
return mChecked;
}
@Override
public void setChecked(boolean checked) {
mChecked = checked;
setBackgroundDrawable(checked ? new ColorDrawable(getResources().getColor(android.R.color.white)) : null);
}
@Override
public void toggle() {
mChecked = !mChecked;
setBackgroundDrawable(mChecked ? new ColorDrawable(getResources().getColor(android.R.color.white)) : null);
}
}
然后,您可以在列表中使用setItemChecked(int index, boolean checked)
。