我需要帮助。
所以我正在构建一个包含两个片段的Android应用。 (一般和收藏) General Fragments有一个项目列表,这些项目上有一个Star,所以我想要做的是当用户点击ListView项目的Star时,该项目将显示在收藏夹片段的ListView中。
因此将项目从ListView复制到另一个片段中的另一个ListView。
我正在使用General Fragment的适配器来填充项目。
ListView项目上的变量只是一个TextView(标题)和一个ImageView(海报)
这是MainActivity类,其中接口实现,我使用底部导航抽屉,在不同的片段之间切换。接口方法就在最后。
以下是界面使用的主要活动方法: enter image description here
答案 0 :(得分:2)
接收这样的列表然后将其放入listview
ArrayList<GroupListDetail> results;
try {
results = (ArrayList<GroupListDetail>) getIntent()
.getSerializableExtra("mylist");
} catch (Exception e) {
}
if ((results != null) && results.size() > 0) {
listView.setAdapter(new GroupListAdapter(this, results));
}
像这样添加并传递列表
myList = new ArrayList<GroupListDetail>();
for(int a = 0; a<myList2.size();a++)
{
GroupListDetail gld = new GroupListDetail();
gld.setItem_ID(myList2.get(a).getItem_ID());
myList.add(gld);
}
Intent i = new Intent(GroupList.this, Gscanner.class);
if ((results != null) && results.size() > 0) {
i.putExtra("mylist", results);
}
Details.java
@SuppressWarnings("serial")
public class GroupListDetail implements Serializable{
public String getItem_ID() {
return Item_ID;
}
public void setItem_ID(String Item_ID) {
this.Item_ID = Item_ID;
}
private String Item_ID ;
}
答案 1 :(得分:0)
您可以使用BroadCast
或EventBus
。这是link of EventBus。在我看来,EventBus更容易使用。
答案 2 :(得分:0)
您可以使用相同的适配器填充“常规”和“收藏夹列表片段”上的列表。您可以使用枚举模式{General,Favorite} 显示相应的列表。
每个列表项都可以有一个布尔标志(isFavorite)。 最初,您可以将isFavorite的值设为false。
在一般列表的OnClickItem侦听器中,只需将该标志切换为特定项的true。
在“常规”列表中,使用isFavorite填充列表为false(如果您不想在该列表中显示收藏项目),并在“收藏夹”列表中填充isFavorite设置为true的列表。
同样,您可以从收藏列表切换到常规列表。