-1

My MainActivity.java contains

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        switch (item.getItemId())
        {
            case R.id.calendar:
                fragmentTransaction = getSupportFragmentManager().beginTransaction();
                fragmentTransaction.replace(R.id.main_container,  new Calender());
                fragmentTransaction.commit();
                getSupportActionBar().setTitle("Calender");
                item.setChecked(true);
                break;
           // drawer.closeDrawers();
        }
        return true;
    }
});

and my Calender.java contains

public class Calender extends android.support.v4.app.Fragment{
    Activity a;
    CalendarView calendar;
    public Calender() {
        // Required empty public constructor
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)  {
        // Inflate the layout for this fragment
        a = new Activity();
        a.setContentView(R.layout.fragment_calender);

        initializeCalendar();
        return inflater.inflate(R.layout.fragment_calender, container, false);

    }

    public void initializeCalendar() {

        calendar = (CalendarView) a.findViewById(R.id.calendar);
        // sets whether to show the week number.
        calendar.setShowWeekNumber(false);
        // sets the first day of week according to Calendar.
        // here we set Monday as the first day of the Calendar
        calendar.setFirstDayOfWeek(2);
        //The background color for the selected week.
        calendar.setSelectedWeekBackgroundColor(getResources().getColor(R.color.green));
        //sets the color for the dates of an unfocused month.
        calendar.setUnfocusedMonthDateColor(getResources().getColor(R.color.transparent));
        //sets the color for the separator line between weeks.
        calendar.setWeekSeparatorLineColor(getResources().getColor(R.color.transparent));
        //sets the color for the vertical bar shown at the beginning and at the end of the selected date.
        calendar.setSelectedDateVerticalBar(R.color.darkgreen);
        //sets the listener to be notified upon selected date change.
        calendar.setOnDateChangeListener(new OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int day) {
                Toast.makeText(a.getApplicationContext(), day + "/" + month + "/" + year, Toast.LENGTH_LONG).show();
            }
        });

    }
}

is there any problem with my fragment? or is it in main activity? please help asap.The app opens but where i try to click on the calender button, nothins shows up.

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
Mohendra
  • 161
  • 1
  • 7

1 Answers1

0

Why do you have an instance of activity in your fragment? Change your onCreateView to:

public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    View view = inflater.inflate(R.layout.content_main, parent, false);
    calendar = (CalendarView) view.findViewById(R.id.calendar);
    return view;
}

and then in onViewCreated method do this:

initializeCalendar();

make sure the id of your calendar view in content_main is calendar.

Heisenberg
  • 5,514
  • 2
  • 32
  • 43