我有一个FragmentActivity,其中包含四个片段布局中显示的片段.这些选项卡用于在我的数据库中添加或删除内容,并按以下顺序显示:艺术家 - 流派 - 专辑 - 歌曲."相册"选项卡包含数据库中所有艺术家和流派的微调器,并且应当在各自的选项卡中添加艺术家或类型时更新这些微调器.这适用于Artist选项卡; 但是,当我在"流派"选项卡中添加或删除某些内容时,除非我将选项卡更改为"艺术家",或者转到单独的"活动"然后返回,否则更改将不会显示在"相册"中.
我不明白的问题是,当我将标签布局更改为艺术家 - 流派 - 歌曲 - 专辑时,一切都运行得很好.看来这些选项卡只在他们查看单独的活动或片段时才更新,然后返回到应该进行更改的选项卡.我也知道用于刷新微调器的sql或方法不是问题,因为我也尝试将布局更改为Genre - Artist - Album - Song.在这种情况下,类型更新会成功反映在相册中,但是艺术家中的那些更新不会,直到我将两个标签移离相册.
很难解释清楚,并且如果需要我可以发布我的代码,但似乎问题与直接在彼此旁边的选项卡之间导航有关.
我还尝试在我的类型片段中扩充添加相册布局,然后在添加或删除类型时更新微调器.
这是AddGenreFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.add_genre_layout, container, false);
addAlbum = inflater.inflate(R.layout.add_album_layout, container, false);
spinGenre = (Spinner) addAlbum.findViewById(R.id.spinGenre);
return v;
}
Run Code Online (Sandbox Code Playgroud)
然后在删除方法中:
// Refresh the spinners in Add Album
ArrayList<String> genreList = dbh.getAllGenres(); // Return all the genres in the database
if (!genreList.isEmpty()) {
// Set …
Run Code Online (Sandbox Code Playgroud)