gpt4 book ai didi

java - 适配器抛出 java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-12-01 21:34:57 25 4
gpt4 key购买 nike

我收到以下错误:

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference at com.example.steblinatetiana.lesson02.SportAdapter.onBindViewHolder(SportAdapter.java:66) at com.example.steblinatetian

这是我的代码:

public class SportAdapter extends Adapter<BaseViewHolder> {

private static OnItemClickListener clickListener;
private LayoutInflater inflater;
private List<Sport> sports;

public SportAdapter(Context context, List<Sport> sports) {
this.inflater = LayoutInflater.from(context);
this.sports = sports;
}

static void setOnClickListener(MainActivity mainActivity) {
}

@NonNull
@Override
public BaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new BaseViewHolder(inflater, parent);

}


@Override
public void onBindViewHolder(BaseViewHolder holder, final int position) {
final Sport sport = sports.get(position);
holder.bind(sport);

SportInfoFragment sportInfoFragment = new SportInfoFragment();
Bundle bundle = new Bundle();
bundle.putString("sport", String.valueOf(sport));
sportInfoFragment.setArguments(bundle);


holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), InfoActivity.class);
if (view.getContext().getResources() != null) {
intent.putExtra("sport", sport);
}
view.getContext().startActivity(intent);
}

});
}

@Override
public int getItemCount() {
return 20 ;
}


public OnItemClickListener getClickListener() {
return clickListener;
}

public LayoutInflater getInflater() {
return inflater;
}

public void setInflater(LayoutInflater inflater) {
this.inflater = inflater;
}


void setOnClickListener(OnItemClickListener itemClickListener) {
clickListener = itemClickListener;

}
}

如何修复此错误?

最佳答案

在将列表放入适配器之前,您必须确保列表不为空。为此,请在构造函数中添加@NonNull注释以确保。

public SportAdapter(Context context, @NonNull List<Sport> sports) {
this.inflater = LayoutInflater.from(context);
this.sports = sports;
}

您在 getItems 方法中也犯了一些错误。改成这样。

@Override
public int getItemCount() {
return sports.getSize();
}

关于java - 适配器抛出 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58805037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com