package com.marvinlabs.widget.floatinglabel.demo; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import com.marvinlabs.widget.floatinglabel.itempicker.FloatingLabelItemPicker; import com.marvinlabs.widget.floatinglabel.itempicker.ItemPickerListener; import com.marvinlabs.widget.floatinglabel.itempicker.StringPickerDialogFragment; import com.marvinlabs.widget.slideshow.demo.R; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class ItemWidgetsFragment extends Fragment implements ItemPickerListener<String>, FloatingLabelItemPicker.OnItemPickerEventListener<String> { FloatingLabelItemPicker<String> picker1; FloatingLabelItemPicker<String> picker2; FloatingLabelItemPicker<String> picker3; FloatingLabelItemPicker<String> picker4; public static ItemWidgetsFragment newInstance() { return new ItemWidgetsFragment(); } @Override @SuppressWarnings("unchecked") public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_item_widgets, null, false); // Spinners picker1 = (FloatingLabelItemPicker<String>) root.findViewById(R.id.picker1); picker1.setItemPickerListener(this); picker1.setAvailableItems(new ArrayList<String>(Arrays.asList("Item 1.1", "Item 1.2", "Item 1.3", "Item 1.4", "Item 1.5", "Item 1.6", "Item 1.7", "Item 1.8"))); picker1.setWidgetListener(new FloatingLabelItemPicker.OnWidgetEventListener<String>() { @Override public void onShowItemPickerDialog(FloatingLabelItemPicker<String> source) { StringPickerDialogFragment itemPicker1 = StringPickerDialogFragment.newInstance( source.getId(), "Picker 1", "OK", "Cancel", true, source.getSelectedIndices(), new ArrayList<String>(source.getAvailableItems())); itemPicker1.setTargetFragment(ItemWidgetsFragment.this, 0); itemPicker1.show(getChildFragmentManager(), "ItemPicker1"); } }); picker2 = (FloatingLabelItemPicker<String>) root.findViewById(R.id.picker2); picker2.setItemPickerListener(this); picker2.setAvailableItems(new ArrayList<String>(Arrays.asList("Item 2.1", "Item 2.2", "Item 2.3", "Item 2.4"))); picker2.setWidgetListener(new FloatingLabelItemPicker.OnWidgetEventListener<String>() { @Override public void onShowItemPickerDialog(FloatingLabelItemPicker source) { StringPickerDialogFragment itemPicker2 = StringPickerDialogFragment.newInstance( source.getId(), "Picker 2", "OK", "Cancel", false, source.getSelectedIndices(), new ArrayList<String>(source.getAvailableItems())); itemPicker2.setTargetFragment(ItemWidgetsFragment.this, 0); itemPicker2.show(getChildFragmentManager(), "ItemPicker2"); } }); picker3 = (FloatingLabelItemPicker<String>) root.findViewById(R.id.picker3); picker3.setItemPickerListener(this); picker3.setAvailableItems(new ArrayList<String>(Arrays.asList("Item 1.1", "Item 1.2", "Item 1.3", "Item 1.4", "Item 1.5", "Item 1.6", "Item 1.7", "Item 1.8"))); picker3.setWidgetListener(new FloatingLabelItemPicker.OnWidgetEventListener<String>() { @Override public void onShowItemPickerDialog(FloatingLabelItemPicker<String> source) { StringPickerDialogFragment itemPicker3 = StringPickerDialogFragment.newInstance( source.getId(), "Picker 3", "OK", "Cancel", true, source.getSelectedIndices(), new ArrayList<String>(source.getAvailableItems())); itemPicker3.setTargetFragment(ItemWidgetsFragment.this, 0); itemPicker3.show(getChildFragmentManager(), "ItemPicker3"); } }); picker4 = (FloatingLabelItemPicker<String>) root.findViewById(R.id.picker4); picker4.setItemPickerListener(this); picker4.setAvailableItems(new ArrayList<String>(Arrays.asList("Item 2.1", "Item 2.2", "Item 2.3", "Item 2.4"))); picker4.setWidgetListener(new FloatingLabelItemPicker.OnWidgetEventListener<String>() { @Override public void onShowItemPickerDialog(FloatingLabelItemPicker source) { StringPickerDialogFragment itemPicker4 = StringPickerDialogFragment.newInstance( source.getId(), "Picker 4", "OK", "Cancel", false, source.getSelectedIndices(), new ArrayList<String>(source.getAvailableItems())); itemPicker4.setTargetFragment(ItemWidgetsFragment.this, 0); itemPicker4.show(getChildFragmentManager(), "ItemPicker4"); } }); return root; } // Implementation of the OnItemPickerEventListener interface @Override public void onSelectionChanged(FloatingLabelItemPicker<String> source, Collection<String> selectedItems) { Toast.makeText(getActivity(), source.getItemPrinter().printCollection(selectedItems), Toast.LENGTH_SHORT).show(); } // Implementation of the InstantPickerListener interface @Override public void onCancelled(int pickerId) { } @Override public void onItemsSelected(int pickerId, int[] selectedIndices) { if (pickerId == R.id.picker1) { picker1.setSelectedIndices(selectedIndices); } else if (pickerId == R.id.picker2) { picker2.setSelectedIndices(selectedIndices); } else if (pickerId == R.id.picker3) { picker3.setSelectedIndices(selectedIndices); } else if (pickerId == R.id.picker4) { picker4.setSelectedIndices(selectedIndices); } } }