//package com.example.citrusclient.views; // //import android.view.LayoutInflater; //import android.view.View; //import android.view.ViewGroup; //import android.widget.TextView; // //import androidx.recyclerview.widget.RecyclerView; // //import com.example.citrusclient.R; //import com.example.citrusclient.models.Book; // //import java.util.ArrayList; //import java.util.List; // //public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { // private List<Book> originalList; // 元のデータリスト // private List<Book> filteredList; // // public MyAdapter(List<Book> originalList) { // this.originalList = originalList; // this.filteredList = new ArrayList<>(originalList); // } // // @Override // public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { // View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a_public_book, parent, false); // return new ViewHolder(view); // } // // @Override // public void onBindViewHolder(ViewHolder holder, int position) { // Book currentBook = filteredList.get(position); // holder.bind(currentBook); // } // // @Override // public int getItemCount() { // return filteredList.size(); // } // // public void filter(String query) { // filteredList.clear(); // if (query.isEmpty()) { // filteredList.addAll(originalList); // } else { // String[] queryWords = query.toLowerCase().trim().split("\\s+"); // for (Book item : originalList) { // boolean matchesAll = true; // for (String word : queryWords) { // if (!item.getAccountId().toLowerCase().contains(word)) { // matchesAll = false; // break; // } // } // if (matchesAll) { // filteredList.add(item); // } // } // } // notifyDataSetChanged(); // } // // public void setBooks(ArrayList publicList) { // } // // static class ViewHolder extends RecyclerView.ViewHolder { // TextView titleTextView; // TextView authorTextView; // // ViewHolder(View itemView) { // super(itemView); // titleTextView = itemView.findViewById(R.id.public_button); // authorTextView = itemView.findViewById(R.id.public_id); // } // // void bind(Book book) { // titleTextView.setText(book.getTitle()); // authorTextView.setText(book.getAccountId()); // } // } //} package com.example.citrusclient.views; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.citrusclient.Citrus; import com.example.citrusclient.R; import com.example.citrusclient.models.Book; import java.util.ArrayList; import java.util.Calendar; import java.util.List; public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { private List<Book> originalList; // 元のデータリスト private List<Book> filteredList; // フィルタリングされたリスト // private List<Book> publicList; // private List accountIdList; // private Context context; public MyAdapter(List<Book> originalList) { this.originalList = originalList; this.filteredList = new ArrayList<>(originalList); } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a_public_book, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { Book currentBook = filteredList.get(position); holder.bind(currentBook); holder.authorTextView.setText(filteredList.get(position).getAccountId()); holder.authorTextView.setHeight(30); holder.authorTextView.setWidth(100); Book publicData = this.filteredList.get(position); holder.titleTextView.setText(publicData.getTitle()); int red, green, blue; if (publicData.getColor() == null || publicData.getColor().length() < 7) { red = 255; green = 255; blue = 255; } else { red = Integer.parseInt(publicData.getColor().substring(1, 3), 16); green = Integer.parseInt(publicData.getColor().substring(3, 5), 16); blue = Integer.parseInt(publicData.getColor().substring(5, 7), 16); System.out.println("redColor is "+red); } holder.titleTextView.setBackgroundColor(Color.rgb(red, green, blue)); holder.titleTextView.setTextColor(Color.rgb(255 - red, 255 - green, 255 - blue)); // holder.titleTextView.setOnClickListener(v -> { // Calendar c = Calendar.getInstance(); // Activity activity = (Activity) context; // Citrus citrus = (Citrus) activity.getApplication(); // citrus.setCurYear(c.get(Calendar.YEAR)); // citrus.setCurMonth(c.get(Calendar.MONTH) + 1); // citrus.setCurDay(c.get(Calendar.DATE)); // citrus.setCurBookId(publicData.getBookId()); // ((MainActivity) activity).showFragment(new HomeFragment()); // }); } @Override public int getItemCount() { return filteredList.size(); } // 新しいデータを設定するメソッド public void setBooks(List<Book> books) { originalList.clear(); originalList.addAll(books); filter(""); // 空のクエリで全てのアイテムを表示 } // フィルタリングメソッド public void filter(String query) { filteredList.clear(); if (query.isEmpty()) { filteredList.addAll(originalList); } else { String lowerCaseQuery = query.toLowerCase().trim(); for (Book item : originalList) { if (item.getAccountId().toLowerCase().contains(lowerCaseQuery) || item.getTitle().toLowerCase().contains(lowerCaseQuery)) { filteredList.add(item); } } } notifyDataSetChanged(); } static class ViewHolder extends RecyclerView.ViewHolder { TextView titleTextView; TextView authorTextView; ViewHolder(View itemView) { super(itemView); titleTextView = itemView.findViewById(R.id.public_button); authorTextView = itemView.findViewById(R.id.public_id); } void bind(Book book) { titleTextView.setText(book.getTitle()); authorTextView.setText(book.getAccountId()); } } }