如何从特定项目位置开始显示列表视图

Gav*_*vin 3 android adapter android-listview getview

我有300首mp3歌曲的列表视图,假设歌曲52正在播放.所以我想下次当用户打开歌曲列表时,他前面的列表行必须从第52行开始(上下都是行).我试过用

public View getViewByPosition(int pos, ListView listView) {
    final int firstListItemPosition = listView.getFirstVisiblePosition();
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

    if (pos < firstListItemPosition || pos > lastListItemPosition ) {
        return listView.getAdapter().getView(pos, null, listView);
    } else {
        final int childIndex = pos - firstListItemPosition;
        return listView.getChildAt(childIndex);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且

adapter.getItem(52);
Run Code Online (Sandbox Code Playgroud)

但两者都是毫无意义的方法,并没有带我去第52行.(这些方法是我使用的,但可能不是解决方案)而且我没有得到谷歌搜索的解决方案.如果你们能解决这个问题,请告诉我!

非常感谢你的聆听!

Anj*_*ali 12

该行将从顶部开始选择n行:

listview.setSelectionFromTop(n, 0);
Run Code Online (Sandbox Code Playgroud)

因此,对于您想要选择52行的情况,您必须在设置适配器后开始活动时遵循以下代码

listview.setSelectionFromTop(52, 0);
Run Code Online (Sandbox Code Playgroud)