Android listview焦点

时间:2012-01-11 15:31:52

标签: android android-listview

我正在为Android开发一个播放列表应用程序,它有一个ListView,其中包含歌曲名称(TextView)作为列表项。

当歌曲播放时,我想突出显示列表视图中的项目,直到歌曲结束。这是为了表明当前正在播放哪首歌曲。

我尝试了listview中的setSelection API,但它没有用。

1 个答案:

答案 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)