Android 是否在recyclerView in fragment中创建一个onsweed()以将信息发送回MainActivity?
我需要一些帮助,在MainActivity中设置一个侦听器,等待一个recyclerview项被删除Android 是否在recyclerView in fragment中创建一个onsweed()以将信息发送回MainActivity?,android,android-fragments,Android,Android Fragments,我需要一些帮助,在MainActivity中设置一个侦听器,等待一个recyclerview项被删除 @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { Log.d(TAG, "whats swiped " + viewHolder.getAdapterPosition() + " d
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
Log.d(TAG, "whats swiped " + viewHolder.getAdapterPosition() + " direction: " + direction + " arrayListCountyNames.get(viewHolder.getAdapterPosition())" + arrayListCountyNames.get(viewHolder.getAdapterPosition()));
final String s = arrayListCountyNames.get(viewHolder.getAdapterPosition());
final String s2 = arrayListStateName.get(viewHolder.getAdapterPosition());
final String s3 = arrayListSourceId.get(viewHolder.getAdapterPosition());
final String s4 = arrayListID.get(viewHolder.getAdapterPosition());
我需要回到main活动,因为那里执行所有操作。有两种方法可以将数据发送到其他类
public class Details {
public String s ;
public String s2 ;
public String s3;
public String s4;
}
然后在片段中创建一个侦听器(接口),如下所示:
public class BlankFragment extends Fragment {
private OnSwipeMyRecyclerViewListener mListener;
public BlankFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnSwipeMyRecyclerViewListener) {
mListener = (OnSwipeMyRecyclerViewListener) context;
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnSwipeMyRecyclerViewListener{
void onSwipeMyRecyclerView(Details details, int position);
}
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//your code
Details details = new Details();
details.s = s;
details.s2 = s2;
details.s3 = s3;
details.s4 = s4;
mListener.onSwipeMyRecyclerView(details,direction);
}
之后,在OnSweep方法中,创建details类的一个对象,并指定所有需要传递和调用侦听器的值,如下所示:
public class BlankFragment extends Fragment {
private OnSwipeMyRecyclerViewListener mListener;
public BlankFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnSwipeMyRecyclerViewListener) {
mListener = (OnSwipeMyRecyclerViewListener) context;
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
public interface OnSwipeMyRecyclerViewListener{
void onSwipeMyRecyclerView(Details details, int position);
}
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//your code
Details details = new Details();
details.s = s;
details.s2 = s2;
details.s3 = s3;
details.s4 = s4;
mListener.onSwipeMyRecyclerView(details,direction);
}
最后,在您的活动中实现您的侦听器,如下所示
public class MainActivity extends AppCompatActivity implements BlankFragment.OnSwipeMyRecyclerViewListener {
@Override
public void onSwipeMyRecyclerView(Details details, int position) {
//Do whatever want to do with your data here
}
}
现在试着让我们知道……:) 看起来不错,但我一直在使用“MonswipMyRecycleServiceWListener.OnswipMyRecycleView(详细信息,方向);”给我一个错误,因为onSwipe在fragment类中,而“private OnswipMyRecycleServiceWListener MonswipMyRecycleServiceWListener;”在MyAdapter类中,所以onSwipe方法在您的fragment类中?太好了!谢谢你的精确和具体!