在我的主要活动中,我有两个片段。一个是歌曲列表,第二个是最喜欢的。这两个片段都包含ListView和自定义适配器。有一个底部表单,其中包含一个按钮。当该按钮被点击时,该歌曲将被添加到收藏夹(第二个片段)。我可以将歌曲添加到片段最爱中,但它不会在我们添加它时显示。我们必须重新启动应用程序才能将其加入收藏夹中。添加最爱的按钮是从主要活动中操作的。有什么办法可以通知我的适配器状态已经改变(歌曲添加到最喜欢的使用数据库)如何在状态更改时通知适配器?
有没有什么办法可以在打开时刷新片段?
这是主要活动的代码,其中最喜欢的是点击时在数据库中添加歌曲名称的按钮。
favourite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(x==0) {
favourite.setImageResource(R.drawable.ic_favorite);x=1;
boolean isinserted =
mydb.insertdata(collections.get(a).getsong().toString());
if (isinserted == true) {
Toast.makeText(MainActivity.this, "Added as favorite", Toast.LENGTH_LONG).show();
x=1;
}
else
{
Toast.makeText(MainActivity.this, "data not inserted", Toast.LENGTH_LONG).show();
}
}
else{favourite.setImageResource(R.drawable.ic_favorite_border);
int deletedrow = mydb.deleteData(collections.get(a).getsong());
if(deletedrow>0){Toast.makeText(MainActivity.this, "removed from favorite", Toast.LENGTH_LONG).show();
finish();
startActivity(getIntent());
x=0;
}
else {Toast.makeText(MainActivity.this, " not removed from favorite", Toast.LENGTH_LONG).show();
}
}
}
});
您是否为该最喜欢片段中列表的底层适配器调用了'notifyDataSetChanged'? –
是的,但没有任何反应。因为该按钮是在主要活动 –
你应该提供一个mcve,http://stackoverflow.com/help/mcve –