我有两个窗格布局:
其他几点:
我的问题:
单击某个项目时,会在该项目上使用setActivated(true)将该行突出显示为内容中显示的当前激活的行。但是当用户使用ViewPager滚动到另一个列表时,该项也可能存在于另一个列表中,我想强调它也被激活。
那么您认为以合理优雅的方式实现这种片段间通信的最佳方式是什么?
答案 0 :(得分:0)
更简洁的方法是,如果所有这些片段都属于同一个活动,可能会有一个无ui片段来保存您想要分享的列表。
只是要小心,你不希望该列表中的任何视图,只需要数据,除非你热衷于创建内存泄漏。
作为奖励,您可以使用{ui less片段setRetainInstance(true)
来保留您的项目。
答案 1 :(得分:0)
好的,这就是我解决这个问题的方法,我很满意..
private void setVisibleItemActivated(Long id)
{
for (int i = getListView().getFirstVisiblePosition(); i <= getListView().getLastVisiblePosition(); i++)
{
Cursor cursor = (Cursor) getListView().getItemAtPosition(i);
Long gameId = cursor.getLong(cursor.getColumnIndex("_id"));
View view = getListView().getChildAt(i);
if (view.isActivated())
{
if (gameId != id)
view.setActivated(false);
}
else
{
if (gameId == id)
view.setActivated(true);
}
}
}
...因此它会检查该列表中当前是否显示该ID。