Проблема с пользовательским макетом в другом макете, макет не отображается в режиме приложения и дизайна - PullRequest
0 голосов
/ 06 февраля 2020

Итак, когда я нажимаю на кнопку, называемую календарём, на основном занятии, должно открыться новое занятие (второй экран) с частью календаря, которую я создал (макет custom_calendar). Тем не менее, мне открыта только пустая активность. Я уже пытался внести изменения в стиль. xml, очистить и перестроить проект, но это ничего не меняет. Ссылка на мое приложение на BitBucket внизу.

https://bitbucket.org/Nike50/app/src/master/

1 Ответ

0 голосов
/ 06 февраля 2020

Пожалуйста, измените CustomCalendarView Класс, как указано ниже

public class CustomCalendarView extends LinearLayout {
    private static final int MAX_CALENDAR_DAYS = 42;
    ImageView backBtn, nextBtn;
    TextView CurrentDate;
    GridView gridViewCalendar;
    Calendar calendar = Calendar.getInstance(Locale.ENGLISH);
    Context myContext;

    SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM yyyy", Locale.ENGLISH);
    SimpleDateFormat monthFormat = new SimpleDateFormat("MMMM", Locale.ENGLISH);
    SimpleDateFormat yearFormat = new SimpleDateFormat("MMMM YYYY", Locale.ENGLISH);
    List<Date> dates = new ArrayList<>();
    List<Events> eventsList = new ArrayList<>();

    public CustomCalendarView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        this.myContext = context;
        InitializeLayout();
        SetUpCalendar();
        backBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                calendar.add(Calendar.MONTH, -1);
                SetUpCalendar();
            }
        });
        nextBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                calendar.add(Calendar.MONTH, 1);
                SetUpCalendar();
            }
        });
    }

    private void SetUpCalendar() {
        String currentDate = dateFormat.format(calendar.getTime());
        CurrentDate.setText(currentDate);
    }

    public void InitializeLayout() {
        LayoutInflater inflater = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.custom_calendar, this);
        nextBtn = view.findViewById(R.id.forwardButton);
        backBtn = view.findViewById(R.id.previousButton);
        CurrentDate = view.findViewById(R.id.currentDate);
        gridViewCalendar = view.findViewById(R.id.gridview);
    }
}

Работает хорошо

enter image description here

I надеюсь, это поможет вам!

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...