私はカスタムレイアウトとのユーザーのやり取りを処理するためのレイアウトとイベントリスナーを含むフラグメントを持っています。しかし、フラグメント内のイベントリスナを設定する際にnullポインタ例外が発生します。ここでは、カスタムビュー参照がフラグメント内でnullであることがわかりました。あなたは正確にエラーが発生しているんフラグメント内のカスタムレイアウト
public class CustomCalendarView extends LinearLayout {
private EventListener eventListener;
public CustomCalendarView(Context context, AttributeSet attrs)
{
super(context);
............
cellView = (GridView) findViewById(R.id.calendar_grid);
cellView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
if (eventListener == null)
return false;
eventListener.onDayLongPress((Date) adapterView.getItemAtPosition(i));
return true;
}
});
}
public void setEventListener(EventListener eventListener) {
this.eventListener = eventListener;
}
public interface EventListener {
void onDayLongPress(Date date);
}
}
public class DescribeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_explore_planner, container, false);
MainActivity activity = (MainActivity) getActivity();
customCalendarView = ((CustomCalendarView) view.findViewById(R.id.calendar_view));
customCalendarView.setEventListener(new CustomCalendarView.EventListener() {
@Override
public void onDayLongPress(Date date) {
Toast.makeText(getContext(), timeFormatter.format(date), Toast.LENGTH_SHORT).show();
}
});
}
コードを入力してください。リスナーを設定し、レイアウトからビューを取得するコード –
式の1つにヌル参照があるため、NPEを取得しています。あなたのコードを見ずにほとんどの人が教えてくれることを確かめてください! – Shaishav
おそらくcellViewにnull参照がありますか? – Chris623