在我的主要活動中,我有兩個片段。一個是歌曲列表,第二個是最喜歡的。這兩個片段都包含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 –