package org.itsnat.itsnatdroidtest.testact.local.asset; import android.content.res.Resources; import android.view.View; import android.widget.AdapterViewFlipper; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; import android.widget.ExpandableListView; import android.widget.GridView; import android.widget.SimpleExpandableListAdapter; import android.widget.Spinner; import org.itsnat.droid.InflatedLayout; import org.itsnat.itsnatdroidtest.R; import org.itsnat.itsnatdroidtest.testact.TestActivity; import org.itsnat.itsnatdroidtest.testact.TestActivityTabFragment; import org.itsnat.itsnatdroidtest.testact.util.CustomScrollView; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by jmarranz on 16/07/14. */ public class TestSetupAssetLayout1 extends TestSetupAssetLayoutBase { public TestSetupAssetLayout1(TestActivityTabFragment fragment) { super(fragment); } public void test() { final TestActivity act = fragment.getTestActivity(); final View compiledRootView = loadCompiledAndBindBackReloadButtons(R.layout.test_local_layout_1_compiled); final View buttonReload = compiledRootView.findViewById(R.id.buttonReload); buttonReload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // TEST de carga dinámica de layout guardado localmente InflatedLayout layout = loadAssetAndBindBackReloadButtons("res/layout/test_local_layout_1_asset.xml"); // R.raw.test_local_layout_1_asset View dynamicRootView = layout.getRootView(); initialConfiguration(act, dynamicRootView); TestAssetLayout1.test((CustomScrollView) compiledRootView, (CustomScrollView) dynamicRootView, layout); } }); initialConfiguration(act, compiledRootView); } private static void initialConfiguration(TestActivity act, View rootView) { defineAutoCompleteTextViewDropdown(act, rootView); defineAdapterViewAnimator(act, rootView); defineGridView(act, rootView); defineExpandableListView(act, rootView); defineSpinnerDialog(act, rootView); defineSpinnerDropdown(act, rootView); } private static void defineAdapterViewAnimator(TestActivity act, View rootView) { // Resources res = act.getResources(); AdapterViewFlipper viewFlipper = (AdapterViewFlipper) rootView.findViewById(R.id.adapterViewAnimatorTestId); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(act, R.array.sports_array, android.R.layout.simple_list_item_1); //adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); viewFlipper.setAdapter(adapter); } private static void defineGridView(TestActivity act, View rootView) { Resources res = act.getResources(); GridView gridView = (GridView) rootView.findViewById(R.id.gridViewTestId); CharSequence[] entries = res.getTextArray(R.array.sports_array); gridView.setAdapter(new ArrayAdapter<CharSequence>(act, android.R.layout.simple_list_item_1, entries)); } private static void defineExpandableListView(TestActivity act, View rootView) { // http://stackoverflow.com/questions/17636735/expandable-listview-in-fragment // Resources res = act.getResources(); ExpandableListView listView = (ExpandableListView) rootView.findViewById(R.id.expanListViewTestId); final int NUM_GROUPS = 10; final String NAME = "NAME"; final String IS_EVEN = "IS_EVEN"; List<Map<String, String>> groupData = new ArrayList<Map<String, String>>(); for (int i = 0; i < NUM_GROUPS; i++) // 10 grupos { Map<String, String> curGroupMap = new HashMap<String, String>(); // Grupo groupData.add(curGroupMap); curGroupMap.put(NAME, "Group " + i); // Comentamos el segundo texto del item de grupo porque simple_expandable_list_item_1 sólo tiene text1 //curGroupMap.put(IS_EVEN, (i % 2 == 0) ? "This group is even" : "This group is odd"); // No se muestra porque } List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>(); for (int i = 0; i < NUM_GROUPS; i++) // 10 grupos { List<Map<String, String>> children = new ArrayList<Map<String, String>>(); for (int j = 0; j < 2; j++) { Map<String, String> curChildMap = new HashMap<String, String>(); children.add(curChildMap); curChildMap.put(NAME, "Child " + i + " " + j); curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd"); } childData.add(children); } // Set up our adapter SimpleExpandableListAdapter mAdapter = new SimpleExpandableListAdapter(act, groupData, android.R.layout.simple_expandable_list_item_1, // https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/simple_expandable_list_item_1.xml new String[]{NAME}, //new String[] { NAME, IS_EVEN }, new int[]{android.R.id.text1}, // new int[] { android.R.id.text1, android.R.id.text2 }, childData, android.R.layout.simple_expandable_list_item_2, // https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/simple_expandable_list_item_2.xml new String[]{NAME, IS_EVEN}, new int[]{android.R.id.text1, android.R.id.text2}); listView.setAdapter(mAdapter); } private static void defineSpinnerDialog(TestActivity act, View rootView) { // Resources res = act.getResources(); Spinner gridView = (Spinner) rootView.findViewById(R.id.spinnerDialogTestId); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(act, R.array.sports_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Aunque parece que es para dropdown sirve para dialog también y queda mejor que sin definir gridView.setAdapter(adapter); } private static void defineSpinnerDropdown(TestActivity act, View rootView) { // Resources res = act.getResources(); Spinner gridView = (Spinner) rootView.findViewById(R.id.spinnerDropdownTestId); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(act, R.array.sports_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); gridView.setAdapter(adapter); } private static void defineAutoCompleteTextViewDropdown(TestActivity act, View rootView) { AutoCompleteTextView textView; ArrayAdapter<CharSequence> adapter; textView = (AutoCompleteTextView) rootView.findViewById(R.id.autoCompleteTextViewTestId); adapter = ArrayAdapter.createFromResource(act, R.array.sports_array, android.R.layout.simple_list_item_1); textView.setAdapter(adapter); textView = (AutoCompleteTextView) rootView.findViewById(R.id.autoCompleteTextViewTestId2); adapter = ArrayAdapter.createFromResource(act, R.array.sports_array, android.R.layout.simple_list_item_1); textView.setAdapter(adapter); } }