したいこと
指定した日付のRealmデータをすべて取得しAdapteに渡し、メイン画面に表示させたい。
ここまでは実装済み
データベースから指定した日付からの全データは取得できるように実装済み。
#できていないこと
Adapterにその日のデータをすべて渡したい。
#現在のコード
DialogDatePicker.java
Java
1 caldroidFragment.setCaldroidListener(new CaldroidListener() { 2 @Override 3 public void onSelectDate(Date date, View view) { 4 Calendar calendar1 =Calendar.getInstance(); 5 calendar1.setTime(date); 6 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日", Locale.JAPAN); 7 String sample = simpleDateFormat.format(date); 8 RealmResults<RowData> data = realm.where(RowData.class).equalTo("datachan",sample).findAll(); 9 selectbutton.setVisibility(View.VISIBLE); 10 selectbutton.setText(sample + "の詳細を表示"); 11 12 13 } 14 });
Adapter.java
Java
1 Context context; 2 3 4 public static class ViewHolder extends RecyclerView.ViewHolder{ 5 protected TextView text; 6 protected CardView cardView; 7 protected LinearLayout sidebarlayout; 8 protected Realm realm; 9 10 public FeelingViewHolder(View itemview){ 11 super(itemview); 12 text = (TextView)itemview.findViewById(R.id.textview1); 13 cardView = (CardView)itemview.findViewById(R.id.cardView); 14 realm = Realm.getDefaultInstance(); 15 16 sidebarlayout = (LinearLayout)itemview.findViewById(R.id.sidebar); 17 } 18 19 } 20 public Adapter(@NonNull Context context , @Nullable OrderedRealmCollection<RowData> data, boolean autoupdate){ 21 super(data,autoupdate); 22 this.context = context; 23 24 } 25 26 @Override 27 public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType){ 28 View itemView = LayoutInflater.from(parent.getContext()) 29 .inflate(R.layout.card_show_diary,parent,false); 30 final ViewHolder holder = new ViewHolder(itemView); 31 holder.itemView.setOnClickListener(new View.OnClickListener() { 32 @Override 33 public void onClick(View v) { 34 int position = holder.getAdapterPosition(); 35 RowData rowData = getData().get(position); 36 long diaryId = rowData.getId(); 37 Intent intent = new Intent(context,ActivityShowDiary.class); 38 intent.putExtra(ActivityShowDiary.DIARY_ID,diaryId); 39 context.startActivity(intent); 40 } 41 }); 42 return holder; 43 44 } 45 46 @Override 47 public void onBindViewHolder(FeelingViewHolder holder, int position){ 48 RowData rowData = getData().get(position); 49 holder.text.setText(rowData.getTitle()); 50 51 52 }
データを表示させるコード
ListView.class (Fragment)
Java
1Adapter adapter = new FeelingRealmAdapter(getActivity(),rowData,true); 2 recyclerView.setAdapter(adapter); 3 recyclerView.setLayoutManager(llm);
あなたの回答
tips
プレビュー