diff --git a/app/src/main/java/com/example/citrusclient/views/MyAdapter.java b/app/src/main/java/com/example/citrusclient/views/MyAdapter.java index 6c00b37..1086bcf 100644 --- a/app/src/main/java/com/example/citrusclient/views/MyAdapter.java +++ b/app/src/main/java/com/example/citrusclient/views/MyAdapter.java @@ -125,29 +125,18 @@ @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { Book currentBook = filteredList.get(position); - holder.bind(currentBook); + holder.bind(currentBook); // bindメソッドで設定 - 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; + if (currentBook.getColor() == null || currentBook.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); + red = Integer.parseInt(currentBook.getColor().substring(1, 3), 16); + green = Integer.parseInt(currentBook.getColor().substring(3, 5), 16); + blue = Integer.parseInt(currentBook.getColor().substring(5, 7), 16); } - 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(); @@ -170,7 +159,9 @@ public void setBooks(List books) { originalList.clear(); originalList.addAll(books); - filter(""); // 空のクエリで全てのアイテムを表示 + filteredList.clear(); // フィルタリングされたリストもクリア + filteredList.addAll(originalList); // 元のリストの内容を追加 + notifyDataSetChanged(); // アダプターを更新 } // フィルタリングメソッド diff --git a/app/src/main/java/com/example/citrusclient/views/SearchFragment.java b/app/src/main/java/com/example/citrusclient/views/SearchFragment.java index a6e5e07..e3d70d7 100644 --- a/app/src/main/java/com/example/citrusclient/views/SearchFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/SearchFragment.java @@ -112,57 +112,13 @@ public void onViewCreated(@NonNull View view, @NonNull Bundle saveInstanceState){ super.onViewCreated(view, saveInstanceState); -// publicList = new ArrayList<>(); -// name = new ArrayList<>(); -// -// RecyclerView recyclerView = view.findViewById(R.id.public_list); -// recyclerView.setHasFixedSize(true); -// recyclerView.setLayoutManager(new LinearLayoutManager(view.getContext())); -// RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(view.getContext()); -// recyclerView.setLayoutManager(layoutManager); -// PublicAdapter publicAdapter = new PublicAdapter(name, publicList, getActivity()); -// recyclerView.setAdapter(publicAdapter); -// publicBooksViewModel.getAllBooksLiveData().observe(getViewLifecycleOwner(), new Observer>() { -// @Override -// public void onChanged(ArrayList books) { -// if (books != null) { -// for (Book book : books) { -// name.add(book.getAccountId()); -// } -// publicList = new ArrayList<>(books); -// } else { -// publicList = new ArrayList<>(); -// } -// adapter = new MyAdapter(publicList); // アダプターを更新 -// recyclerView.setAdapter(adapter); // アダプターを再設定 -// adapter.notifyDataSetChanged(); // アダプターに変更を通知 -// System.out.println(name); -// adapter = new MyAdapter(publicList); -// recyclerView.setAdapter(adapter); -// recyclerView.setLayoutManager(new LinearLayoutManager(view.getContext())); -// } -// }); -// publicBooksViewModel.loadAllBooks(); -// -// SearchView searchView = view.findViewById(R.id.search_word); -// searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { -// @Override -// public boolean onQueryTextSubmit(String query) { -// loadSearchResults(query); -// return false; -// } -// -// @Override -// public boolean onQueryTextChange(String newText) { -// adapter.filter(newText); -// return true; -// } -// }); - adapter = new MyAdapter(new ArrayList<>()); RecyclerView recyclerView = view.findViewById(R.id.public_list); recyclerView.setLayoutManager(new LinearLayoutManager(view.getContext())); recyclerView.setAdapter(adapter); + RecyclerView recyclerView1 = view.findViewById(R.id.sort_by); + recyclerView1.setLayoutManager(new LinearLayoutManager(view.getContext())); + recyclerView1.setAdapter(adapter); publicBooksViewModel.getAllBooksLiveData().observe(getViewLifecycleOwner(), new Observer>() { @Override @@ -186,12 +142,17 @@ } @Override +// public boolean onQueryTextChange(String newText) { +// //adapter.filter(newText); // フィルタリングを実行 +// loadSearchResults(newText); +// System.out.println("ahe"); +// return true; +//} public boolean onQueryTextChange(String newText) { - //adapter.filter(newText); // フィルタリングを実行 - loadSearchResults(newText); - System.out.println("ahe"); + adapter.filter(newText); // フィルタリングを実行 return true; } + }); } @@ -207,6 +168,9 @@ if(title != null) { if (accountId != null) { publicBooksViewModel.loadSearchBooks(title, accountId, sortBy);//title,accountidでの検索 + if(accountId == null)accountId = "null"; + if(accountId == "")accountId = "space"; + System.out.println("title: "+title+" accountId: "+accountId+" sortBy: "+sortBy); }/* else { publicBooksViewModel.loadSearchTitleBooks(title, sortBy);//titleのみの検索 } diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index a636b07..83a32e7 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -20,24 +20,24 @@ - + android:layout_weight="1"> + android:text="いいね順" /> + android:text="古い順" /> - + android:text="新しい順" /> +