diff --git a/app/src/main/java/com/example/citrusclient/views/MyBookshelfAdapter.java b/app/src/main/java/com/example/citrusclient/views/MyBookshelfAdapter.java new file mode 100644 index 0000000..145a274 --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/views/MyBookshelfAdapter.java @@ -0,0 +1,52 @@ +package com.example.citrusclient.views; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.citrusclient.R; + +import java.util.List; + +public class MyBookshelfAdapter extends RecyclerView.Adapter{ + + private List bookList; + + MyBookshelfAdapter(List book){ + this.bookList = book; + } + + @NonNull + @Override + public MyBookViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.a_book, parent, false); + return new MyBookViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull MyBookViewHolder holder, int position) { + MyBookshelfFragment.RowBook bookData = this.bookList.get(position); + holder.bookButton.setText(bookData.hogeTitle); + holder.bookButton.setBackgroundColor(bookData.color); + } + + @Override + public int getItemCount() { + return bookList.size(); + } + + static class MyBookViewHolder extends RecyclerView.ViewHolder{ + Button bookButton; + public MyBookViewHolder(@NonNull View itemView) { + super(itemView); + bookButton = itemView.findViewById(R.id.book_button); + } + } + +} diff --git a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java index 36d1f65..1875d4c 100644 --- a/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/MyBookshelfFragment.java @@ -1,14 +1,28 @@ package com.example.citrusclient.views; +import android.graphics.Color; +import android.media.Image; import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.GridLayout; import com.example.citrusclient.R; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; + +import java.util.ArrayList; +import java.util.List; /** * A simple {@link Fragment} subclass. @@ -48,6 +62,9 @@ return fragment; } + + private List bookList; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -63,4 +80,47 @@ // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_my_bookshelf_fragment, container, false); } + + + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + bookList = createBooks(); + + RecyclerView recyclerView = view.findViewById(R.id.my_books_list); + recyclerView.setHasFixedSize(true); + RecyclerView.LayoutManager layoutManager = new GridLayoutManager(view.getContext(), 2); + //new LinearLayoutManager(view.getContext()); + recyclerView.setLayoutManager(layoutManager); + RecyclerView.Adapter bookAdapter = new MyBookshelfAdapter(bookList); + recyclerView.setAdapter(bookAdapter); + + FloatingActionButton addButton = view.findViewById(R.id.book_add_button); + addButton.setOnClickListener(v -> { +// RowBook b = new RowBook(); +// b.hogeTitle = "hoge"; +// bookList.add(b); +// bookAdapter.notifyItemInserted(bookList.size()-1); + }); + + } + + private List createBooks(){ + List books = new ArrayList<>(); + for(int i = 0; i < 5; i++){ + RowBook book = new RowBook(); + book.hogeTitle = "hoge"; + book.color = Color.RED; + books.add(book); + } + return books; + } + + class RowBook{ + String hogeTitle; + int color; + } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/baseline_add_24.xml b/app/src/main/res/drawable/baseline_add_24.xml new file mode 100644 index 0000000..9f83b8f --- /dev/null +++ b/app/src/main/res/drawable/baseline_add_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/layout/a_book.xml b/app/src/main/res/layout/a_book.xml new file mode 100644 index 0000000..b0f7823 --- /dev/null +++ b/app/src/main/res/layout/a_book.xml @@ -0,0 +1,18 @@ + + + +