我想将数据从适配器发送到已经打开的片段。在主要活动中,已经打开了两个片段,片段A和片段B。在片段A中,我放置了RecyclerView和CardView。单击其中一个卡视图时,我想将其数据发送到片段B。并且在调用mCallbacks时得到一个NPE。
if (mCallbacks != null){
mCallbacks.onItemClicked(strStockName);}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我使用了一个接口。但是我需要更多的解释。
这是我的适配器的代码:
public class adapterStock extends RecyclerView.Adapter<adapterStock.ViewHolder> {
private String[] stockNameDataSet;
private Context mContext;
//==============================================
//---- interface
public interface Callbacks{
public void onItemClicked(String StockName);
}
private Callbacks mCallbacks;
//==============================================
public adapterStock(Context context, String[] DataSet){
stockNameDataSet = DataSet;
mContext = context;
}
@NonNull
@Override
public adapterStock.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(viewGroup.getContext());
View view = layoutInflater.inflate(R.layout.cv_stock, viewGroup, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { …Run Code Online (Sandbox Code Playgroud)