From c75fd77fdf39328e41a2e23c26583ab745df44a3 Mon Sep 17 00:00:00 2001 From: Zeapo Date: Sun, 27 Jul 2014 03:33:08 +0100 Subject: Implemented the List view, a lot of work to do.. --- .../java/com/zeapo/pwdstore/PasswordFragment.java | 155 +++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java (limited to 'app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java') diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java new file mode 100644 index 00000000..462324db --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -0,0 +1,155 @@ +package com.zeapo.pwdstore; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AbsListView; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListAdapter; +import android.widget.RelativeLayout; +import android.widget.TextView; + + +import com.zeapo.pwdstore.dummy.DummyContent; + +import java.util.List; + +/** + * A fragment representing a list of Items. + *

+ * Large screen devices (such as tablets) are supported by replacing the ListView + * with a GridView. + *

+ * Activities containing this fragment MUST implement the {@link Callbacks} + * interface. + */ +public class PasswordFragment extends Fragment implements AbsListView.OnItemClickListener { + + private OnFragmentInteractionListener mListener; + + /** + * The fragment's ListView/GridView. + */ + private AbsListView mListView; + + /** + * The Adapter which will be used to populate the ListView/GridView with + * Views. + */ + private ListAdapter mAdapter; + + // TODO: Rename and change types of parameters + public static PasswordFragment newInstance(String param1, String param2) { + PasswordFragment fragment = new PasswordFragment(); + Bundle args = new Bundle(); + fragment.setArguments(args); + return fragment; + } + + /** + * Mandatory empty constructor for the fragment manager to instantiate the + * fragment (e.g. upon screen orientation changes). + */ + public PasswordFragment() { + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (getArguments() != null) { + } + String[] values = new String[] { "NOT", "YET", "IMPLEMENTED" }; + + // TODO: Change Adapter to display your content + mAdapter = new MySimpleArrayAdapter(getActivity(), values); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_password, container, false); + + // Set the adapter + mListView = (AbsListView) view.findViewById(android.R.id.list); + ((AdapterView) mListView).setAdapter(mAdapter); + + // Set OnItemClickListener so we can be notified on item clicks + mListView.setOnItemClickListener(this); + + return view; + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + try { + mListener = (OnFragmentInteractionListener) activity; + } catch (ClassCastException e) { + throw new ClassCastException(activity.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (null != mListener) { + // Notify the active callbacks interface (the activity, if the + // fragment is attached to one) that an item has been selected. +// mListener.onFragmentInteraction(DummyContent.ITEMS.get(position).id); + } + } + + /** + * The default content for this Fragment has a TextView that is shown when + * the list is empty. If you would like to change the text, call this method + * to supply the text it should use. + */ + public void setEmptyText(CharSequence emptyText) { + View emptyView = mListView.getEmptyView(); + + if (emptyText instanceof TextView) { + ((TextView) emptyView).setText(emptyText); + } + } + + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + public void onFragmentInteraction(String id); + } + + + public class MySimpleArrayAdapter extends ArrayAdapter { + private final Context context; + private final String[] values; + + public MySimpleArrayAdapter(Context context, String[] values) { + super(context, R.layout.password_row_layout, values); + this.context = context; + this.values = values; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + LayoutInflater inflater = (LayoutInflater) context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View rowView = inflater.inflate(R.layout.password_row_layout, parent, false); + TextView textView = (TextView) rowView.findViewById(R.id.label); + textView.setText(values[position]); + + return rowView; + } + } +} -- cgit v1.2.3