안드로이드 스튜디오 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();
}
}
댓글 입력