Java 将数据从RecyclerView传递到片段
我目前正在创建一个应用程序,它由一个片段、一个用于RecyclerView的适配器和一个通过片段访问的RecyclerView组成。我需要将数据从RecyclerView传递回片段,但是我无法这样做,因为该片段没有通过Intent进行标识。当用户从RecyclerView中选择一个项目时,该项目应传递给片段。我让RecyclerView使用Java 将数据从RecyclerView传递到片段,java,android-studio,android-fragments,android-recyclerview,android-adapter,Java,Android Studio,Android Fragments,Android Recyclerview,Android Adapter,我目前正在创建一个应用程序,它由一个片段、一个用于RecyclerView的适配器和一个通过片段访问的RecyclerView组成。我需要将数据从RecyclerView传递回片段,但是我无法这样做,因为该片段没有通过Intent进行标识。当用户从RecyclerView中选择一个项目时,该项目应传递给片段。我让RecyclerView使用onBackPressed()导航回工作正常的片段。然而,似乎没有数据通过。请参见下面我当前在onItemClick中的内容: @Override publi
onBackPressed()
导航回工作正常的片段。然而,似乎没有数据通过。请参见下面我当前在onItemClick
中的内容:
@Override
public void onItemClick(View view, int position) {
// Need to pass data through to Fragment, however unable to do so as it's not identified
// within the Intent
onBackPressed();
}
如果您想将数据传递给片段,那么我认为您应该在RecycleServiceAdapter中执行一个McClickListener接口,并让片段实现它。Fragement应该向RecycleServiceAdapter中的onItemClickListeners注册自己。然后,您应该能够将片段传递给单击的项目 这将进入您的RecycleServiceAdapter类:
class RecyclerViewAdapter{
//...
interface OnItemClickListener {
void onItemClick(Item item); //replace the item with whatever you want to pass to the fragment
}
List<OnItemClickListener> onItemClickListeners = new ArrayList<>();
public void addOnItemClickListener(OnItemClickListener listener){
onItemClickListeners.add(listener);
}
@Override
public void onItemClick(View view, int position) {
for(OnItemClickListener listener : onItemClickListeners) {
listener.onClick(item);
}
onBackPressed();
}
//...
}
希望这有助于解决您遇到的问题。您传递的是什么数据,是
int
还是什么
class Fragment implements RecyclerViewAdapter.OnItemClickListener {
//...
//Somewhere in your fragment where you create your RecyclerViewAdapter
recyclerViewAdapter.addOnItemClickListener(this);
//...
@Override
public void onItemClick(Item item) {
//now data is passed to your Fragment
}
}