所以我有一个活动-“ MainWindow”。
里面是三个片段。 片段之一是“ HomeFragment”
在HomeFragment内有一个使用适配器“ AvailableRequestsAdapter”的recyclerview
在AvailableRequestsAdapter内有一个按钮,当按下该按钮时,我希望将“ HomeFragment”换成“ SelectBuyerFragment”,并且我希望适配器也将字符串“ service_id”传递给“ SelectBuyerFragment”。
我该怎么做?
我知道我可以使用片段管理器交换片段,但是我该如何在适配器中进行操作呢?
在我的适配器内部:
public class AvailableRequestsHolder extends RecyclerView.ViewHolder {
ImageView serviceIcon;
TextView serviceTitle;
public AvailableRequestsHolder (final View itemView){
super(itemView);
serviceIcon = itemView.findViewById(R.id.service_icon);
serviceTitle = itemView.findViewById(R.id.service_title);
serviceIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Swap HomeFragment for SelectBuyerFragment here
//Also pass "service_id" string to the new fragment.
}
});
}
}
答案 0 :(得分:0)
在HomeFragement
中定义一个接口(例如:onSelectBuyerClicked),并在包含HomeFragement
的活动中实现该接口:
该实现应换出HomeFragment
并将service_id传递给SelectBuyerFragment
。
在AvailableRequestsAdapter中,您可以在调用之前检查活动上下文是否实现了接口