안드로이드 스튜디오 horizontal Date picker 일정 연동하기 질문드립니다.

조회수 554회

안녕하세요! 현재 안드로이드 스튜디오를 통해서 날짜별로 그 일정에 맞는 축구 경기를 보여주게 하는 식의 어플을 만들고자 하는데 Horizontal Date Picker를 통해서 날짜를 이동하면서 볼 생각으로 구현중입니다.

현재 Date Picker까진 구현을 했는데 여기에 OnDateSelected 함수를 통해서 데이터와 날짜 연동을 해야할 것 같은데 어떻게 연동을 해야할지 모르겠습니다. 혹시라도 아시는분있으면 제발 답변 부탁드립니다.

아래는 전체 소스코드입니다.

package com.example.sportstab;

import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import androidx.annotation.RequiresApi;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.room.Room;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonArrayRequest;
import com.github.jhonnyx2012.horizontalpicker.DatePickerListener;
import com.github.jhonnyx2012.horizontalpicker.HorizontalPicker;

import org.joda.time.DateTime;

import java.util.ArrayList;
import java.util.List;


@RequiresApi(api = Build.VERSION_CODES.N)
public class FirstFragment<horizontalCalendar, root> extends Fragment implements DatePickerListener {

    private List<Product_List> product_lists;
    private RecyclerView recyclerView;
    ProductAdapter adapter;


    private JsonArrayRequest request;
    private RequestQueue requestQueue;
    public static FavoriteDatabase favoriteDatabase;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View root = inflater.inflate(R.layout.fragment_first, container, false);

        HorizontalPicker picker = (HorizontalPicker)root.findViewById(R.id.datePicker);
        picker.setListener(this)
                .setDays(120)
                .setOffset(7)
                .setDateSelectedColor(Color.DKGRAY)
                .setDateSelectedTextColor(Color.DKGRAY)
                .setMonthAndYearTextColor(Color.DKGRAY)
                .setTodayButtonTextColor(getResources().getColor(R.color.colorPrimary))
                .setTodayDateTextColor(getResources().getColor(R.color.colorPrimary))
                .setTodayDateBackgroundColor(Color.GRAY)
                .setUnselectedDayTextColor(Color.DKGRAY)
                .setDayOfWeekTextColor(Color.DKGRAY)
                .setUnselectedDayTextColor(getResources().getColor(R.color.primaryTextColor))
                .showTodayButton(false)
                .init();

        picker.setBackgroundColor(Color.LTGRAY);
        picker.setDate(new DateTime());

        recyclerView=(RecyclerView)root.findViewById(R.id.recyclerview);
        recyclerView.setHasFixedSize(true);
        recyclerView.setLayoutManager(new LinearLayoutManager(this.getContext()));

        product_lists=new ArrayList<>();

        favoriteDatabase= Room.databaseBuilder(getContext(),FavoriteDatabase.class,"myfavdb").allowMainThreadQueries().build();


        getData();


        return root;
    }

    private void getData() {


        product_lists.add(new Product_List(1, "스페인 프리메라리가", "세비야 vs 레알 베티스" , "2020.06.12 05:00", "https://pngimage.net/wp-content/uploads/2018/06/sevilla-fc-logo-png-2.png",
                "https://pngimage.net/wp-content/uploads/2018/06/real-betis-escudo-png-5.png"));

        product_lists.add(new Product_List(2, "스페인 프리메라리가", "그라나다 vs 헤타페" , "2020.06.13 02:30", "https://files.proyectoclubes.com/granada/201612/662x372c_22140637662x372a_15120636escudo-web.jpg",
                "https://1.bp.blogspot.com/-R8eElyn20qI/U-8wr94iRfI/AAAAAAAADa8/xzMGNT_zFhA/s72-c/Logo%2BGetafe%2BCF.png"));

        product_lists.add(new Product_List(3, "   독일 분데스리가", "호펜하임 vs 라이프치히" , "2020.06.13 03:30", "https://pngimage.net/wp-content/uploads/2018/06/hoffenheim-png-3.png",
                "https://pngimage.net/wp-content/uploads/2018/06/rb-leipzig-logo-png-1.png"));
        product_lists.add(new Product_List(4, "스페인 프리메라리가", "  발렌시아 vs 레반테" , "2020.06.13 05:00", "https://pngimage.net/wp-content/uploads/2018/06/valencia-cf-png-4.png",
                "http://3.bp.blogspot.com/-IBRaWX6bryU/VmNNHHJMSMI/AAAAAAAACfM/nPI87qrdx1Y/s320/Levante%2BUD%2BLogo.png"));
        product_lists.add(new Product_List(5, "스페인 프리메라리가", " 에스파뇰 vs 알라베스" , "2020.06.13 21:00", "https://pngimage.net/wp-content/uploads/2018/06/rcd-espanyol-png-2.png",
                "https://pngimage.net/wp-content/uploads/2018/05/alaves-logo-png-6.png"));
        product_lists.add(new Product_List(6, "   독일 분데스리가", "뒤셀도르프 vs 도르트문트" , "2020.06.13 22:30", "https://2.bp.blogspot.com/-AyfT671coEE/U_YH-TnQeTI/AAAAAAAADpo/99L8_eOEBck/s1600/Logo%2BFortuna%2BDusselsdorf.png",
                "https://pngimage.net/wp-content/uploads/2018/05/borussia-dortmund-logo-png-7.png"));
        setupData(product_lists);
    }

    private void setupData(List<Product_List> product_lists) {
        adapter=new ProductAdapter(product_lists,getContext());
        adapter.notifyDataSetChanged();
        recyclerView.setAdapter(adapter);
    }


    @Override
    public void onDateSelected(DateTime dateSelected) {
        Toast.makeText(getContext(),dateSelected.toString(),Toast.LENGTH_SHORT).show();
    }
}

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)