/** * 设置适配器 * * @param adapter MySpinnerAdapter适配器 */ public void setAdapter(MySpinnerAdapter adapter) { adapter.setSpinner(this); this.lAdapter = adapter; SpinnerRes res = this.lAdapter.getSelectedItem(); if (res != null) { setText(res.getValue()); } }
@Override public void onClick(View v) { if (this.equals(v)) { if (isShowing()) { menuDismiss(); } else { showDropMenu(); } } else if (getContext() != null && v.getId() == ITEM_ID) { int position = -1; try { position = Integer.parseInt(v.getTag().toString()); } catch (NumberFormatException e) { e.printStackTrace(); } if (position > -1 && position < lAdapter.getCount()) { lAdapter.switchSelected(position); menuDismiss(); } } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTabLayout = (TabLayout) findViewById(R.id.tab_layout); mTabPager = (ViewPager) findViewById(R.id.tab_pager); mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); initializeTestData(); mRVAdapter = new RVAdapter(cardsDruid); mRecyclerView.setAdapter(mRVAdapter); mRecyclerView.setHasFixedSize(true); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_default); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); mContext = getSupportActionBar().getThemedContext(); mLinearLayout = new LinearLayoutManager(mContext); // mGridLayout = new GridLayoutManager(mContext, 3); mRecyclerView.setLayoutManager(mLinearLayout); // mRecyclerView.setLayoutManager(mGridLayout); View spinnerContainer = LayoutInflater.from(mContext).inflate(R.layout.toolbar_spinner, toolbar, false); ActionBar.LayoutParams lp = new ActionBar.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); toolbar.addView(spinnerContainer, lp); MySpinnerAdapter spinnerAdapter = new MySpinnerAdapter(); spinnerAdapter.addItems( new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.collections_array)))); Spinner spinner = (Spinner) spinnerContainer.findViewById(R.id.toolbar_spinner); spinner.setAdapter(spinnerAdapter); spinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> spinner, View view, int position, long itemId) { // load new collection view Toast.makeText(mContext, "Spinner item selected -> " + position, Toast.LENGTH_SHORT) .show(); if (mCurrentSpinnerPosition != position) { mTabPager.clearOnPageChangeListeners(); mTabLayout.removeAllTabs(); switch (position) { case 0: // hide other layouts mRecyclerView.setVisibility(View.GONE); // setup selected layout mPagerAdapter = new MyPagerAdapter( getSupportFragmentManager(), mContext, getResources().getStringArray(R.array.class_names_array)); mTabPager.setAdapter(mPagerAdapter); mTabLayout.setTabsFromPagerAdapter(mPagerAdapter); mTabLayout.setupWithViewPager(mTabPager); // show selected layout mTabLayout.setVisibility(View.VISIBLE); mTabPager.setVisibility(View.VISIBLE); break; case 1: mTabLayout.setVisibility(View.GONE); mTabPager.setVisibility(View.GONE); mRecyclerView.setVisibility(View.VISIBLE); break; case 2: mRecyclerView.setVisibility(View.GONE); mPagerAdapter = new MyPagerAdapter( getSupportFragmentManager(), mContext, getResources().getStringArray(R.array.class_names_array)); mTabPager.setAdapter(mPagerAdapter); mTabLayout.setTabsFromPagerAdapter(mPagerAdapter); mTabLayout.setupWithViewPager(mTabPager); mTabLayout.setVisibility(View.VISIBLE); mTabPager.setVisibility(View.VISIBLE); break; } } } @Override public void onNothingSelected(AdapterView<?> adapterView) {} }); mTabPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout)); mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer); // Set up the drawer. mNavigationDrawerFragment.setup( R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), toolbar); // populate the navigation drawer mNavigationDrawerFragment.setUserData( "John Doe", "*****@*****.**", BitmapFactory.decodeResource(getResources(), R.drawable.avatar)); }
private void initializescreen() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); View spinnerContainer = LayoutInflater.from(this).inflate(R.layout.spinner, toolbar, false); ActionBar.LayoutParams lp = new ActionBar.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); toolbar.addView(spinnerContainer, lp); MySpinnerAdapter spinnerAdapter = new MySpinnerAdapter(); spinnerAdapter.addItem("Quận 1 "); spinnerAdapter.addItem("Quận 2 "); spinnerAdapter.addItem("Quận 3 "); spinnerAdapter.addItem("Quận 4 "); spinnerAdapter.addItem("Quận 5 "); spinnerAdapter.addItem("Quận 6 "); spinnerAdapter.addItem("Quận 7 "); spinnerAdapter.addItem("Quận 8 "); spinnerAdapter.addItem("Quận 9 "); spinnerAdapter.addItem("Quận 10 "); spinnerAdapter.addItem("Quận 11 "); spinnerAdapter.addItem("Quận 12 "); spinnerAdapter.addItem("Tân Bình "); spinnerAdapter.addItem("Bình Thạnh "); spinnerAdapter.addItem("Tân Phú "); spinnerAdapter.addItem("Thủ Đức "); spinnerAdapter.addItem("Hóc Môn "); spinnerAdapter.addItem("Củ Chi "); // ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, // R.array.district_array, R.layout.spinner_item_actionbar); // spinnerAdapter.setDropDownViewResource(R.layout.spinner_item_dropdown); Spinner spinner = (Spinner) spinnerContainer.findViewById(R.id.better_spinner); spinner.setAdapter(spinnerAdapter); }
/** * 获取当前选中值 * * @return SpinnerRes 没有选中项时为空 */ public SpinnerRes getSelectedRes() { return lAdapter == null ? null : lAdapter.getSelectedItem(); }
/** * 根据value设置选中项 * * @param value string */ public void setSelectedToValue(String value) { if (lAdapter != null) { lAdapter.setDefSelectedToValue(value); } }
/** * 根据code设置选中项 * * @param code string */ public void setSelectedToCode(String code) { if (lAdapter != null) { lAdapter.setDefSelectedToCode(code); } }
/** * 设置选中的item背景,该方法需要在setAdapter后调用 * * @param id R.drawable.xxx | R.color.xxx */ public void setSelectedBackground(int id) { if (lAdapter != null) { lAdapter.setSelectedBackground(id); } }
/** * 设置item背景,该方法需要在setAdapter后调用 * * @param id R.drawable.xxx | R.color.xxx */ public void setChildBackground(int id) { if (lAdapter != null) { lAdapter.setChildBackground(id); } }