Java tutorial
/* * The MIT License (MIT) * Copyright (c) 2015 Fernando Lpez * * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons * to whom the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or * substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ package org.floppp.observerpattern_activityfragments.views; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.util.Pair; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import org.floppp.observerpattern_activityfragments.R; import org.floppp.observerpattern_activityfragments.model.StockPrice; import org.floppp.observerpattern_activityfragments.presenter.FragmentPresenter; import org.floppp.observerpattern_activityfragments.presenter.OnPriceChangedListener; import java.util.ArrayList; import butterknife.Bind; import butterknife.ButterKnife; public class CustomFragment extends Fragment implements OnPriceChangedListener { protected @Bind(R.id.list_view) ListView mListView; private ArrayList<String> mData = new ArrayList<>(); private ArrayAdapter<String> mAdapter; protected FragmentPresenter mFragPresenter; protected OnFragmentInteractionListener mListener; @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"); } mAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, mData); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_blank, container, false); ButterKnife.bind(this, root); mListView.setAdapter(mAdapter); mFragPresenter.onCreateView(mListener); return root; } @Override public void onDetach() { super.onDetach(); mListener = null; } @Override public void setPrice(Pair<StockPrice.OPTIONS, Double> pair) { mData.add(String.format("%s : %.3f", pair.first.toString(), pair.second)); mAdapter.notifyDataSetChanged(); mListView.setSelection(mData.size() - 1); } }