diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java index 68bcb63..80ed8e2 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/EditFragment.java @@ -2,11 +2,15 @@ import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; +import android.widget.ListView; import android.widget.TextView; @@ -23,11 +27,14 @@ import androidx.lifecycle.ViewModelProvider; import java.util.ArrayList; +import java.util.Collection; public class EditFragment extends Fragment { private EditViewModel editViewModel; private FragmentEditBinding binding; + private ArrayList aid; + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -38,20 +45,107 @@ View root = binding.getRoot(); TextView textView = binding.textMake; - Acanthus acanthus = (Acanthus) getActivity().getApplication(); - Integer uid = acanthus.getPreferenceUid(); - String token = acanthus.getPreferenceToken(); - editViewModel.getWorkList(uid, token); +// Acanthus acanthus = (Acanthus) getActivity().getApplication(); +// Integer uid = 1; +// String token = "abc0"; +// editViewModel.getWorkList(uid, token); +// aid = new ArrayList<>(); +// //----------------------------------------------------------------- +// //listView +// View layout = inflater.inflate(R.layout.fragment_edit, container, false); +// ListView listView = (ListView) layout.findViewById(R.id.list_view); +// +// editViewModel.getWorkJson().observe(getViewLifecycleOwner(), new Observer() { +// @Override +// public void onChanged(@Nullable WorkJson workJson) { +// textView.setText(workJson.getAid().toString()); +// +// aid = (ArrayList) editViewModel.getWorkJson().getValue().getAid(); +// // BaseAdapter を継承したadapterのインスタンスを生成 +// // レイアウトファイル list.xml を activity_main.xml に +// // inflate するためにadapterに引数として渡す +// BaseAdapter adapter = new WorkListViewAdapter(layout.getContext(), +// R.layout.work_list, aid, aid); +// +// // ListViewにadapterをセット +// listView.setAdapter(adapter); +// +// // クリックリスナーをセット +// //listView.setOnItemClickListener(getActivity()); +// } +// }); - editViewModel.getWorkJson().observe(getViewLifecycleOwner(), new Observer() { - @Override - public void onChanged(@Nullable WorkJson workJson) { - textView.setText(workJson.getAid().toString()); - } - }); - return root; + //return root; + return inflater.inflate(R.layout.fragment_edit, container, false); } + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + super.onActivityCreated(savedInstanceState); + Log.d("CreatedActivity", "EditFragment"); + + editViewModel = new ViewModelProvider(this).get(EditViewModel.class); + + Acanthus acanthus = (Acanthus) getActivity().getApplication(); + Integer uid = 1; + String token = "abc0"; + editViewModel.getWorkList(uid, token); + aid = new ArrayList<>(); + //----------------------------------------------------------------- + //listView + //View layout = inflater.inflate(R.layout.fragment_edit, container, false); + ListView listView = (ListView) getActivity().findViewById(R.id.list_view); +// BaseAdapter adapter = new WorkListViewAdapter(getActivity(), R.layout.work_list); +// listView.setAdapter(adapter); + + editViewModel.getWorkJson().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable WorkJson workJson) { + //textView.setText(workJson.getAid().toString()); + + aid = (ArrayList) editViewModel.getWorkJson().getValue().getAid(); + //adapter.setAidList(aid); + // BaseAdapter を継承したadapterのインスタンスを生成 + // レイアウトファイル list.xml を activity_main.xml に + // inflate するためにadapterに引数として渡す + BaseAdapter adapter = new WorkListViewAdapter(getActivity(), + R.layout.work_list, aid, aid); +// ArrayAdapter adapter = new ArrayAdapter<>(getActivity(), R.layout.work_list); +// adapter.add("1"); +// adapter.add("2"); +// adapter.add("3"); + + // ListViewにadapterをセット + listView.setAdapter(adapter); + + // クリックリスナーをセット + //listView.setOnItemClickListener(getActivity()); + } + }); + } + +// @Override +// public void onActivityCreated(Bundle savedInstanceState) { +// super.onActivityCreated(savedInstanceState); +// +// Acanthus acanthus = (Acanthus) getActivity().getApplication(); +// Integer uid = 1; +// String token = "abc0"; +// editViewModel.getWorkList(uid, token); +// try { +// aid = (ArrayList) editViewModel.getWorkJson().getValue().getAid(); +// }catch (ArithmeticException e){ +// +// } +// ListView listView = getActivity().findViewById(R.id.list_view); +// BaseAdapter adapter = new WorkListViewAdapter(getActivity().getApplication(), +// R.layout.work_list, aid, aid); +//// ArrayAdapter arrayAdapter = new ArrayAdapter<>(getActivity().getApplicationContext(), android.R.layout., mmItems); +// listView.setAdapter(adapter); +// } + //----------------------------------------------------------------- //----------------------------------------------------------------- @@ -66,11 +160,48 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Button appButton = view.findViewById(R.id.Paint_button); + + // ListView listView = (ListView) view.findViewById(R.id.list_view); + Integer uid = 1; + String token = "abc0"; + editViewModel.getWorkList(uid, token); +// aid = (ArrayList) editViewModel.getWorkJson().getValue().getAid(); +// BaseAdapter を継承したadapterのインスタンスを生成 +// レイアウトファイル list.xml を activity_main.xml に +// inflate するためにadapterに引数として渡す + //final WorkListViewAdapter adapter = new WorkListViewAdapter(this.getContext(), R.layout.work_list); + + // ListViewにadapterをセット + // listView.setAdapter(adapter); + + //editViewModel.getWorkJson().observe(getViewLifecycleOwner(), new Observer() { + // @Override + // public void onChanged(@Nullable WorkJson workJson) { +// textView.setText(workJson.getAid().toString()); + + //aid = (ArrayList) workJson.getAid(); + // BaseAdapter を継承したadapterのインスタンスを生成 + // レイアウトファイル list.xml を activity_main.xml に + // inflate するためにadapterに引数として渡す +// BaseAdapter adapter = new WorkListViewAdapter(getActivity().getApplicationContext(), +// R.layout.work_list, aid, aid); +// +// // ListViewにadapterをセット +// listView.setAdapter(adapter); +// adapter.setAnimationName(aid); +// adapter.setLastUpdate(aid); +// adapter.notifyDataSetChanged(); + + // クリックリスナーをセット + //listView.setOnItemClickListener(getActivity()); + // } + //}); + appButton.setOnClickListener(v -> { Acanthus acanthus = (Acanthus) getActivity().getApplication(); - Integer uid = acanthus.getPreferenceUid(); + //Integer uid = acanthus.getPreferenceUid(); String name = ((EditText)view.findViewById(R.id.AnimationName)).getText().toString(); - String token = acanthus.getPreferenceToken(); + //String token = acanthus.getPreferenceToken(); Integer aid = editViewModel.startWorkEdit(uid, name, token); acanthus.setAid(aid); transitionPaintActivity(); diff --git a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/WorkListViewAdapter.java b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/WorkListViewAdapter.java index fafd1a0..019a238 100644 --- a/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/WorkListViewAdapter.java +++ b/app/src/main/java/org/ntlab/acanthus_client/views/main_menu_ui/edit/WorkListViewAdapter.java @@ -15,8 +15,9 @@ private final LayoutInflater inflater; private final int layoutId; - private final ArrayList animationName; - private final ArrayList lastUpdate; + + private ArrayList animationName; + private ArrayList lastUpdate; //参照保存データ static class ViewHolder{ @@ -25,6 +26,12 @@ } //コンテキスト + public WorkListViewAdapter(Context context, int layoutId) { + super(); + this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.layoutId = layoutId; + } + public WorkListViewAdapter(Context context, int layoutId, ArrayList animationName, ArrayList lastUpdate) { super(); this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); @@ -51,15 +58,23 @@ } //ViewHolder内のtextViewName,Dateに各ポジションのデータをセット - viewHolder.textViewName.setText(animationName.get(position)); - viewHolder.textViewDate.setText(lastUpdate.get(position)); + if (animationName != null) viewHolder.textViewName.setText(animationName.get(position)); + if (lastUpdate != null) viewHolder.textViewDate.setText(lastUpdate.get(position)); return convertView; } + public void setAnimationName(ArrayList animationName) { + this.animationName = animationName; + } + + public void setLastUpdate(ArrayList lastUpdate) { + this.lastUpdate = lastUpdate; + } + @Override public int getCount() { - return 0; + return animationName.size(); } @Override diff --git a/app/src/main/res/layout/fragment_edit.xml b/app/src/main/res/layout/fragment_edit.xml index 7d9ff0b..af8a829 100644 --- a/app/src/main/res/layout/fragment_edit.xml +++ b/app/src/main/res/layout/fragment_edit.xml @@ -18,10 +18,10 @@ android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.469" /> + app:layout_constraintVertical_bias="0.446" />