如果用户单击Fragment
项目,则需要转到下一个Recyclerview
。为此,我在Adapter
中尝试了以下操作:
viewHolder.getModel().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
seller fragment3 = new seller();
FragmentTransaction fragmentTransaction3 = mActivity.getSupportFragmentManager().beginTransaction();
fragmentTransaction3.replace(R.id.fram, fragment3, "FragmentThree"); //create first framelayout with id fram in the activity where fragments will be displayed
fragmentTransaction3.commit();
}
});
现在的问题是它无法解决getSupportFragmentManager
我必须更改什么?
答案 0 :(得分:1)
我试图解释如何通过界面解决您的问题。在您的适配器中,创建一个接口。
public interface ItemClickListener {
void onItemClicked(int itemId);
}
然后,在适配器类中初始化接口并将其添加到cronstructor中。
private ItemClickListener mListener;
public Adapter(ItemClickListener listener) {
this.mListener = listener;
}
在方法中,您必须调用接口方法并传递ID。
viewHolder.getModel().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onItemClicked(getItemId);
}
});
最后,您需要在recyclerview的活动或片段中实现接口,您可以在其中访问fragmentmanager并将其传递给适配器的构造函数。
public class ExampleActivity extends AppCompatActivity implement Adapter.ItemClickListener{
Adapter adapter = new Adapter(this);
//...
@Override
public void onItemClicked(int itemId) {
// start fragment with the itemId
}
}