Android 如何使用图像动态更新listview中的当前播放项目

Android 如何使用图像动态更新listview中的当前播放项目,android,android-listview,android-service,android-mediaplayer,Android,Android Listview,Android Service,Android Mediaplayer,我已经为媒体播放器创建了一个包含隐藏歌曲和标题歌曲的播放列表。尝试使列表项中的当前播放图像在项目上可见或不可见,请单击下面的代码 @Override public void onItemClick(AdapterView<?> list, View view, int pos, long arg3) { if(currentPosition != -1){ View last = list.getChild

我已经为媒体播放器创建了一个包含隐藏歌曲和标题歌曲的播放列表。尝试使列表项中的当前播放图像在项目上可见或不可见,请单击下面的代码

@Override
    public void onItemClick(AdapterView<?> list, View view, int pos,
            long arg3) {
         if(currentPosition != -1){
              View last = list.getChildAt(currentPosition); // the last one clicked
            last.findViewById(R.id.play_circle).setVisibility(
                    View.INVISIBLE);  
            }
            view.findViewById(R.id.play_circle).setVisibility(View.VISIBLE);
            currentPosition = pos;

        Intent i = new Intent(this, PlayerActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        startActivity(i);
    }
@覆盖
public void onItemClick(适配器视图列表、视图视图、int pos、,
长arg3){
如果(当前位置!=-1){
View last=list.getChildAt(currentPosition);//最后一个单击的
last.findviewbyd(R.id.play\u circle).设置可见性(
视图(不可见);
}
view.findViewById(R.id.play_circle).setVisibility(view.VISIBLE);
当前位置=位置;
意图i=新意图(此,PlayerActivity.class);
i、 setFlags(Intent.FLAG\u活动\u清除\u顶部
|意图。标记活动(重新排序)至前端);
星触觉(i);
}

它似乎工作得很好,但有时它会在if条件中出现null指针异常,从而导致应用程序崩溃。是否有更好的方法更新列表。以及如何在歌曲结束并开始下一首歌曲时动态更新列表。提前感谢您的帮助和感谢。

您能分享更多代码吗?NullPointerException很可能是由于
list
变量引起的。你如何得到它的参考?请注意,如果屏幕旋转之类的情况导致重新创建活动,“列表”引用将无效。你可以尝试用
getListView().getChildAt(…
替换
list.getChildAt(…
),但是如果你能分享更多的代码,我会很高兴。@“它给出了一个空指针异常”请发布你的日志。另外,你确定NPE在
onItemClick()的
if
上吗
?如果您发布了日志,那么回答您的问题可能会更容易。