Home > Enterprise >  I can't create a CalendarView inside a Fragment
I can't create a CalendarView inside a Fragment

Time:01-24

Good afternoon, I'm new to Android Studio development. I'm developing an application where I need to create a Calendar in one of the Fragments.

I'm trying to create a CalendarView in my fragment, but the setContentView methods and others are highlighted in red, what am I doing wrong? Below is the code.

public class CalendarFragment extends Fragment  {
    private CalendarView calendarView;

    public CalendarFragment() {
        // Required empty public constructor
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_calendar);
        CalendarView calendarView = findViewById(R.id.calendarView);
        calendarView.setOnDateChangeListener(new OnDateChangeListener() {

            @Override
            public void onSelectedDayChange(CalendarView view, int year,
                                            int month, int dayOfMonth) {
                int mYear = year;
                int mMonth = month;
                int mDay = dayOfMonth;
                String selectedDate = new StringBuilder().append(mMonth   1)
                        .append("-").append(mDay).append("-").append(mYear)
                        .append(" ").toString();
                Toast.makeText(getApplicationContext(), selectedDate, Toast.LENGTH_LONG).show();
            }
        });
    }
}

CodePudding user response:

You can try like this

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view1 = inflater.inflate(R.layout.fragment_calendar, container, false);
        calendarView = view1.findViewById(R.id.calendarView);
        calendarView.setOnDateChangeListener((view, year, month, dayOfMonth) -> {
            int mYear = year;
            int mMonth = month;
            int mDay = dayOfMonth;
            String selectedDate = new StringBuilder().append(mMonth   1)
                    .append("-").append(mDay).append("-").append(mYear)
                    .append(" ").toString();
            Toast.makeText(getContext(), selectedDate, Toast.LENGTH_LONG).show();
        });


        return view1;

    }

Here you need to get CalendarView in onCreateView and return view1 otherwise you get java.lang.NullPointerException: Error Like View view1 = inflater.inflate(R.layout.fragment_calendar, container, false);

  • Related