私はカスタムリサイクラビューを使用しています。アダプタクラスでは、ボタンをクリックすると常にnullが実装されています。ここに私のアダプタクラスがあります。ボタンをクリックするたびに、私は常にnullを取得していますインタフェースの値は常にnullです
public class FeedListAdapter extends
RecyclerView.Adapter<AddtoCartHolder> {
private OnFeedItemClickListener onFeedItemClickListener;
public FeedListAdapter(Activity activity, ArrayList<CartItem> feedItems) {
this.activity = activity;
this.feedItems = feedItems;
this.filteredfeedItems = feedItems;
inflater = LayoutInflater.from(activity);
}
public void setOnFeedItemClickListener(OnFeedItemClickListener onFeedItemClickListener) {
this.onFeedItemClickListener = onFeedItemClickListener;
}
@Override
public AddtoCartHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(
R.layout.feed_item, parent, false);
AddtoCartHolder viewHolder = new AddtoCartHolder(v);
setupClickableViews(v, viewHolder);
return viewHolder;
}
@Override
public void onBindViewHolder(final AddtoCartHolder holder, int position) {
CartItem item = (CartItem) filteredfeedItems.get(position);
holder.price.setText((String.valueOf(item.getProductName()) + ""));
holder.location.setText((String.valueOf(item.getQuantity())) + "");
}
private void setupClickableViews(final View view, final AddtoCartHolder cellFeedViewHolder) {
cellFeedViewHolder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(onFeedItemClickListener !=null){
onFeedItemClickListener.onAddClick(v, cellFeedViewHolder.getAdapterPosition());
}
else{
Toast.makeText(activity, "Data is null", Toast.LENGTH_LONG).show();
}
}
});
}
public interface OnFeedItemClickListener {
void onAddClick(View v, int position);
}
@Override
public int getItemCount() {
return filteredfeedItems.size();
}
は本当にダウンし、それは...ヌル来ている
はここでインターフェイスを実装している私のフラグメント・クラスである理由を知っています。public class MyFragment extends Fragment implements FeedListAdapter.OnFeedItemClickListener{
// the method
@Override
public void onAddClick(View v, int position) {
// TODO Auto-generated method stub
Snackbar.make(clContent, "Product removed from cart!",
Snackbar.LENGTH_SHORT).show();
}
ここで、 'setOnFeedItemClickListener'はどこで呼びますか?それ以外の場合は、リスナーを常にnullにする必要があります。 – Patrick
先生、このコードをどこに追加すればよいか教えてください。 – Nitesh
確かに答えを書きましょう。 – Patrick