From 6d67990f0c81f35d437f8151d1b47cc582e818a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yi=C4=9Fit=20=C3=87olako=C4=9Flu?= Date: Mon, 18 Mar 2019 19:44:53 +0300 Subject: [PATCH] Voting fragment startted --- .../java/gq/yigit/mycity/MainActivity.java | 25 +++- .../java/gq/yigit/mycity/MainFragment.java | 108 +++++++++++++++++ .../mycity/voteFragment/VoteFragment.java | 109 ++++++++++++++++++ .../MyVotesRecyclerViewAdapter.java | 7 +- .../{vote => votesFragment}/VotesContent.java | 2 +- .../VotesFragment.java | 4 +- .../app/src/main/res/layout/fragment_main.xml | 14 +++ .../app/src/main/res/layout/fragment_vote.xml | 14 +++ .../main/res/layout/fragment_votes_list.xml | 2 +- MyCity/app/src/main/res/values/strings.xml | 3 + 10 files changed, 275 insertions(+), 13 deletions(-) create mode 100644 MyCity/app/src/main/java/gq/yigit/mycity/MainFragment.java create mode 100644 MyCity/app/src/main/java/gq/yigit/mycity/voteFragment/VoteFragment.java rename MyCity/app/src/main/java/gq/yigit/mycity/{vote => votesFragment}/MyVotesRecyclerViewAdapter.java (91%) rename MyCity/app/src/main/java/gq/yigit/mycity/{vote => votesFragment}/VotesContent.java (95%) rename MyCity/app/src/main/java/gq/yigit/mycity/{vote => votesFragment}/VotesFragment.java (97%) create mode 100644 MyCity/app/src/main/res/layout/fragment_main.xml create mode 100644 MyCity/app/src/main/res/layout/fragment_vote.xml diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java b/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java index 22ad329..ef0eb2f 100644 --- a/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java +++ b/MyCity/app/src/main/java/gq/yigit/mycity/MainActivity.java @@ -2,6 +2,7 @@ package gq.yigit.mycity; import android.content.Context; import android.content.DialogInterface; +import android.net.Uri; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; @@ -17,11 +18,12 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.widget.EditText; -import gq.yigit.mycity.vote.VotesContent; -import gq.yigit.mycity.vote.VotesFragment; +import gq.yigit.mycity.voteFragment.VoteFragment; +import gq.yigit.mycity.votesFragment.VotesContent; +import gq.yigit.mycity.votesFragment.VotesFragment; public class MainActivity extends AppCompatActivity - implements NavigationView.OnNavigationItemSelectedListener, VotesFragment.OnListFragmentInteractionListener { + implements NavigationView.OnNavigationItemSelectedListener, VotesFragment.OnListFragmentInteractionListener, MainFragment.OnFragmentInteractionListener, VoteFragment.OnFragmentInteractionListener { public Context cntxt; @@ -49,6 +51,11 @@ public class MainActivity extends AppCompatActivity NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); + MainFragment fragment = new MainFragment(); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.app_bar_main, fragment); + transaction.addToBackStack(null); + transaction.commit(); } @Override @@ -111,7 +118,7 @@ public class MainActivity extends AppCompatActivity if (id == R.id.voting) { VotesFragment fragment = new VotesFragment(); - fragmentTransaction.add(R.id.app_bar_main, fragment); + fragmentTransaction.replace(R.id.app_bar_main, fragment); fragmentTransaction.commit(); } else if (id == R.id.parking) { @@ -132,7 +139,15 @@ public class MainActivity extends AppCompatActivity } public void onListFragmentInteraction(VotesContent.VoteItem vote){ - Log.i("[INFO]",vote.id); + VoteFragment fragment = new VoteFragment(); + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.app_bar_main, fragment); + transaction.addToBackStack(null); + transaction.commit(); + } + + public void onFragmentInteraction(Uri uri){ + } } diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/MainFragment.java b/MyCity/app/src/main/java/gq/yigit/mycity/MainFragment.java new file mode 100644 index 0000000..5ea2405 --- /dev/null +++ b/MyCity/app/src/main/java/gq/yigit/mycity/MainFragment.java @@ -0,0 +1,108 @@ +package gq.yigit.mycity; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link MainFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link MainFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class MainFragment extends Fragment { + // 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; + + private OnFragmentInteractionListener mListener; + + public MainFragment() { + // 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 MainFragment. + */ + // TODO: Rename and change types and number of parameters + public static MainFragment newInstance(String param1, String param2) { + MainFragment fragment = new MainFragment(); + 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_main, container, false); + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } +} diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/voteFragment/VoteFragment.java b/MyCity/app/src/main/java/gq/yigit/mycity/voteFragment/VoteFragment.java new file mode 100644 index 0000000..8a61147 --- /dev/null +++ b/MyCity/app/src/main/java/gq/yigit/mycity/voteFragment/VoteFragment.java @@ -0,0 +1,109 @@ +package gq.yigit.mycity.voteFragment; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import gq.yigit.mycity.R; + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link VoteFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link VoteFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class VoteFragment extends Fragment { + // 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; + + private OnFragmentInteractionListener mListener; + + public VoteFragment() { + // 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 VoteFragment. + */ + // TODO: Rename and change types and number of parameters + public static VoteFragment newInstance(String param1, String param2) { + VoteFragment fragment = new VoteFragment(); + 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_vote, container, false); + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *

+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } +} diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/vote/MyVotesRecyclerViewAdapter.java b/MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/MyVotesRecyclerViewAdapter.java similarity index 91% rename from MyCity/app/src/main/java/gq/yigit/mycity/vote/MyVotesRecyclerViewAdapter.java rename to MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/MyVotesRecyclerViewAdapter.java index 7067e1e..c21efd5 100644 --- a/MyCity/app/src/main/java/gq/yigit/mycity/vote/MyVotesRecyclerViewAdapter.java +++ b/MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/MyVotesRecyclerViewAdapter.java @@ -1,7 +1,6 @@ -package gq.yigit.mycity.vote; +package gq.yigit.mycity.votesFragment; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -9,8 +8,8 @@ import android.widget.ImageView; import android.widget.TextView; import gq.yigit.mycity.R; -import gq.yigit.mycity.vote.VotesFragment.OnListFragmentInteractionListener; -import gq.yigit.mycity.vote.VotesContent.VoteItem; +import gq.yigit.mycity.votesFragment.VotesFragment.OnListFragmentInteractionListener; +import gq.yigit.mycity.votesFragment.VotesContent.VoteItem; import java.util.List; diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/vote/VotesContent.java b/MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/VotesContent.java similarity index 95% rename from MyCity/app/src/main/java/gq/yigit/mycity/vote/VotesContent.java rename to MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/VotesContent.java index 66df6e0..bb5b959 100644 --- a/MyCity/app/src/main/java/gq/yigit/mycity/vote/VotesContent.java +++ b/MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/VotesContent.java @@ -1,4 +1,4 @@ -package gq.yigit.mycity.vote; +package gq.yigit.mycity.votesFragment; import android.graphics.Bitmap; diff --git a/MyCity/app/src/main/java/gq/yigit/mycity/vote/VotesFragment.java b/MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/VotesFragment.java similarity index 97% rename from MyCity/app/src/main/java/gq/yigit/mycity/vote/VotesFragment.java rename to MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/VotesFragment.java index 7427a3a..7da64b3 100644 --- a/MyCity/app/src/main/java/gq/yigit/mycity/vote/VotesFragment.java +++ b/MyCity/app/src/main/java/gq/yigit/mycity/votesFragment/VotesFragment.java @@ -1,4 +1,4 @@ -package gq.yigit.mycity.vote; +package gq.yigit.mycity.votesFragment; import android.content.Context; import android.graphics.Bitmap; @@ -12,7 +12,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import gq.yigit.mycity.*; -import gq.yigit.mycity.vote.VotesContent.VoteItem; +import gq.yigit.mycity.votesFragment.VotesContent.VoteItem; import org.json.JSONArray; import org.json.JSONObject; diff --git a/MyCity/app/src/main/res/layout/fragment_main.xml b/MyCity/app/src/main/res/layout/fragment_main.xml new file mode 100644 index 0000000..2c1eec8 --- /dev/null +++ b/MyCity/app/src/main/res/layout/fragment_main.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/MyCity/app/src/main/res/layout/fragment_vote.xml b/MyCity/app/src/main/res/layout/fragment_vote.xml new file mode 100644 index 0000000..fb676dd --- /dev/null +++ b/MyCity/app/src/main/res/layout/fragment_vote.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/MyCity/app/src/main/res/layout/fragment_votes_list.xml b/MyCity/app/src/main/res/layout/fragment_votes_list.xml index f7e940c..b76c0ed 100644 --- a/MyCity/app/src/main/res/layout/fragment_votes_list.xml +++ b/MyCity/app/src/main/res/layout/fragment_votes_list.xml @@ -11,7 +11,7 @@ android:layout_marginTop="60dp" android:layout_marginRight="16dp" app:layoutManager="LinearLayoutManager" - tools:context=".vote.VotesFragment" + tools:context=".votesFragment.VotesFragment" tools:listitem="@layout/fragment_votes" android:divider="@android:color/transparent" android:dividerHeight="100.0sp" diff --git a/MyCity/app/src/main/res/values/strings.xml b/MyCity/app/src/main/res/values/strings.xml index 4d4cd64..a9436ba 100644 --- a/MyCity/app/src/main/res/values/strings.xml +++ b/MyCity/app/src/main/res/values/strings.xml @@ -9,4 +9,7 @@ Transport For you + + Hello blank fragment +