我有一个奇怪的问题.我从ListView切换到RecyclerView,我无法刷新或通知我的ListView中的更改.我试着调用Item.this.notifyDataSetChanged();

和其他方法刷新View但它不起作用.

而是滚动时(无论方向如何)刷新RecyclerView.如何更改时如何通知我的RecyclerView?

码:

@Override

public void onBindViewHolder(Ids holder,final int position) {

rowItemClass = (ListViewRow) rowItems.get(position);

Log.e("swag","OYOYOYOYOYO");

if (Globals.isPlaying && Globals.pos == position) {

if (pausedSamePos == true) {

holder.pauseed_play.setVisibility(View.VISIBLE);

holder.playing_pause.setVisibility(View.GONE);

} else {

holder.pauseed_play.setVisibility(View.GONE);

holder.playing_pause.setVisibility(View.VISIBLE);

}

holder.song_currenttime_sb.setActive();

holder.song_duration.setVisibility(View.INVISIBLE);

holder.song_duration_sb.setVisibility(View.VISIBLE);

holder.seekbar.setActive();

} else {

holder.seekbar.setInactive();

holder.song_currenttime_sb.setInactive();

holder.song_icon.setImageResource(rowItemClass.getImageId());

holder.song_duration_sb.setVisibility(View.INVISIBLE);

holder.song_duration.setVisibility(View.VISIBLE);

holder.pauseed_play.setVisibility(View.GONE);

holder.playing_pause.setVisibility(View.GONE);

}

sharedPreference = new SharedPreference();

holder.song_duration.setTypeface(Globals

.getTypefaceSecondary(context));

holder.song_duration_sb.setTypeface(Globals

.getTypefaceSecondary(context));

holder.song_name.setTypeface(Globals.getTypefacePrimary(context));

holder.song_currenttime_sb.setTypeface(Globals

.getTypefaceSecondary(context));

holder.song_name.setText(rowItemClass.getTitle());

holder.song_duration.setText(rowItemClass.getDesc());

holder.song_duration_sb.setText(rowItemClass.getDesc());

holder.favorite.setTag(position);

holder.song_currenttime_sb.setTag(position);

holder.seekbar.setTag(position);

holder.clickRegister.setTag(position);

holder.song_icon.setTag(position);

holder.song_name.setTag(position);

holder.song_duration.setTag(position);

holder.song_duration_sb.setTag(position);

holder.more_options.setTag(position);

// int task_id = (Integer) holder.seekbar.getTag();

final Ids finalHolder = holder;

holder.clickRegister.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

try {

if ((Globals.isPlaying.booleanValue())

&& (Globals.pos == position)) {

pausePlaying();

} else {

Globals.stopPlaying();

pausedSamePos = false;

Globals.pos = position;

Globals.isPlaying = true;

Item.this.notifyDataSetChanged();

Globals.mp = MediaPlayer.create(context,Integer

.valueOf(Item.this.songPos[position])

.intValue());

Globals.mp.start();

Globals.pos = position;

Globals.isPlaying = Boolean.valueOf(true);

Item.this.notifyDataSetChanged();

Globals.mp

.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(

MediaPlayer mpOnComplete) {

mpOnComplete.release();

Globals.isPlaying = false;

pausedSamePos = false;

Globals.isPlaying = Boolean

.valueOf(false);

finalHolder.menu_options

.startAnimation(new ViewExpandAnimation(

finalHolder.menu_options));

Item.this.notifyDataSetChanged();

}

});

}

} catch (Exception localException) {

}

}

});

holder.clickRegister

.setOnLongClickListener(new View.OnLongClickListener() {

@Override

public boolean onLongClick(View v) {

Globals.stopPlaying();

Item.this.notifyDataSetChanged();

return true;

}

});

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐