diff --git a/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java b/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java new file mode 100644 index 0000000..e04a4c8 --- /dev/null +++ b/app/src/main/java/com/example/citrusclient/views/BookColorDialogFragment.java @@ -0,0 +1,141 @@ +package com.example.citrusclient.views; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RadioButton; +import android.widget.RadioGroup; +import android.widget.Toast; + +import com.example.citrusclient.R; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link BookColorDialogFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class BookColorDialogFragment extends Fragment { + private RadioGroup radioGroupColors; + + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + public BookColorDialogFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment BookColorDialogFragment. + */ + // TODO: Rename and change types and number of parameters + public static BookColorDialogFragment newInstance(String param1, String param2) { + BookColorDialogFragment fragment = new BookColorDialogFragment(); + Bundle args = new Bundle(); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_book_color_dialog, container, false); + } + + int selected = 0; +// @Override + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); //親クラスである Fragment の onViewCreated() メソッドを呼び出す + view.findViewById(R.id.buttonCancel).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); + } + }); + + radioGroupColors = view.findViewById(R.id.radioGroupColors); + radioGroupColors.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + // ラジオボタンが選択された時の処理 + RadioButton checkedRadioButton = group.findViewById(checkedId); + if (checkedRadioButton != null && checkedRadioButton.isChecked()) { + String selectedColor = checkedRadioButton.getText().toString(); + radioGroupColors.findViewById(R.id.radioButtonSprout).setOnClickListener(new View.OnClickListener() { // + @Override + public void onClick(View view) { + ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); + } + }); + // 選択された色に応じた処理をここに記述する + // 例えば、選択された色をログに出力する + Log.d("ColorSelection", "Selected color: " + selectedColor); + } + } + }); + + view.findViewById(R.id.buttonOk).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ((MainActivity) getActivity()).showFragment(new CreateBookFragment()); + } + }); + + + } + + public Dialog onCreatedDialog(Bundle savedInstanceState){ + final String[] items = {"citrus","sakura","gray"}; + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + return builder.setTitle("色の種類") + .setSingleChoiceItems(items, selected, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int which) { + selected = which; + } + } + ) + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + Toast.makeText(getActivity(),String.format("[%s]が選択されました",items[selected]), + Toast.LENGTH_SHORT).show(); + } + } + ) + .create(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java b/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java index 666efc0..3ed197e 100644 --- a/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java +++ b/app/src/main/java/com/example/citrusclient/views/CreateBookFragment.java @@ -1,6 +1,8 @@ package com.example.citrusclient.views; import android.content.Intent; +import android.content.DialogInterface; +//import android.support.v4.app.DialogFragment; import android.os.Bundle; import androidx.annotation.NonNull; @@ -98,12 +100,15 @@ //((MainActivity) getContext()).setCreateBookFragment(this);//フラグメントとアクティビティ間での情報のやり取りがあるとき //((MainActivity) getActivity()).showFragment(new MyBookshelfFragment()); + //保存ボタンの処理 view.findViewById(R.id.save_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view2) { EditText editname = (EditText) view.findViewById(R.id.book_name); //本の名前を入力する Editable bookeditable = editname.getText(); TextView textbookname = (TextView) view.findViewById(R.id.set_book_name); //本の名前が無かったら入力してと表示する + + if (bookeditable == null) { //本の名前がなかったら System.out.println("本の名前を入力してください"); @@ -128,10 +133,10 @@ // String textbook = textbookname.getText().toString().trim(); //本を保存するコードを書く? + String accountId = ((Citrus) getActivity().getApplication()).getAccountId(); + String token = ((Citrus) getActivity().getApplication()).getToken(); - - - booksViewModel.createBook("bird",bookname,"#00FF00",true,"xyz"); //BooksViewModelを呼び出して本を作る + booksViewModel.createBook(accountId, bookname, "#00FF00", true, token); //BooksViewModelを呼び出して本を作る //画面が本棚に戻る @@ -143,6 +148,7 @@ } }); + //キャンセルボタンの処理 view.findViewById(R.id.cancel_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -150,5 +156,12 @@ } }); + //色選択をするとダイアログが出てくる + view.findViewById(R.id.color_button).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ((MainActivity) getActivity()).showFragment(new BookColorDialogFragment()); + } + }); } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_book_color_dialog.xml b/app/src/main/res/layout/fragment_book_color_dialog.xml new file mode 100644 index 0000000..2f2164d --- /dev/null +++ b/app/src/main/res/layout/fragment_book_color_dialog.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +