添加微调器动作条(不导航(Adding spinner to ActionBar (not Navi

2019-06-14 17:15发布

我已经使用从回答第二个选项增加了一个微调,以我的动作条这里 。

如何我添加一个微调适配器的微调? 我试图用一个微调对象作为谷歌描述了这里却得到了一个空微调对象。

任何人都知道如何做到这一点? 我不想微调是在操作栏的导航区域,但在与其他行动项目(我用的是拆分操作栏)。

谢谢您的帮助!

Answer 1:

我知道这是一个老问题,但以防万一有人绊倒它(像我一样),仍然会寻找一个完整的答案,这里是如何使用兼容性库做到这一点,所以它从到V7工作(Android 2.1版埃克莱尔)到当前V19(Android 4.4的奇巧):

在menu_layout.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >

  <item android:id="@+id/spinner"
    yourapp:showAsAction="ifRoom"
    yourapp:actionViewClass="android.widget.Spinner" />
</menu>

使用http://schemas.android.com/apk/res-auto别名为命名空间yourapp使您可以使用属性showAsAction和actionViewClass不上旧版本的Android的存在。

然后在您的活动代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_layout, menu);
    MenuItem item = menu.findItem(R.id.spinner);
    Spinner spinner = (Spinner) MenuItemCompat.getActionView(item);
    spinner.setAdapter(adapter); // set the adapter to provide layout of rows and content
    spinner.setOnItemSelectedListener(onItemSelectedListener); // set the listener, to perform actions based on item selection

这就是它!



Answer 2:

我知道你抛弃了微调,但我会在其他情况下,这里的人给的是有同样的问题的一些提示或你来开发不同的应用程序相同的模式

  • 如果你有空是因为你没有正确指定的ID。 仔细检查的ID。
  • 上的链接,你通过指定actionLayout,这只是一个微调显示出了复杂的东西,你只需指定一个actionViewClass =“android.widget.Spinner”会做的伎俩。
  • 然后在OnCreateOptionsMenu你这样做:

     inflater.inflate(R.menu.my_menu, menu); // inflate the menu Spinner s = (Spinner) menu.findItem(R.id.my_menu_spinner).getActionView(); // find the spinner SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity().getActionBar() .getThemedContext(), R.array.my_menu_spinner_list, android.R.layout.simple_spinner_dropdown_item); // create the adapter from a StringArray s.setAdapter(mSpinnerAdapter); // set the adapter s.setOnItemSelectedListener(myChangeListener); // (optional) reference to a OnItemSelectedListener, that you can use to perform actions based on user selection 

快乐编码...



Answer 3:

好吧,我抛弃了使用子菜单中的微调思路。 我意识到,微调是针对选择的服务选择的东西; 子菜单缝成为一个更好的用户界面配合。



Answer 4:

inflater.inflate(R.menu.my_menu, menu); // inflate the menu 

Spinner s = (Spinner) menu.findItem(R.id.my_menu_spinner).getActionView();     // find the spinner 
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(getActivity().getActionBar() .getThemedContext(), R.array.my_menu_spinner_list, android.R.layout.simple_spinner_dropdown_item);    // create the adapter from a StringArray 
s.setAdapter(mSpinnerAdapter);   // set the adapter 
s.setOnItemSelectedListener(myChangeListener);    // (optional) reference to a OnItemSelectedListener, that you can use to perform actions based on user selection


文章来源: Adding spinner to ActionBar (not Navigation