java – 旧版Android版本中的ICS Spinner(“下拉”而不是对话框)

前端之家收集整理的这篇文章主要介绍了java – 旧版Android版本中的ICS Spinner(“下拉”而不是对话框)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试模仿较新的Ice Cream Sandwhich版本的微调器,它看起来更像是一个下拉列表而不是弹出对话框. See this link来了解我在说什么.我读了一些帖子,说明要使用ActionBarSherlock来获得所需的效果.但是,这仅用于操作栏,因此,如何将ICS Spinner从操作栏中取出?

There is a pretty good answer here,然而,我觉得这有点矫枉过正?有没有更简单的方法

解决方法

首先,我引用 this link来判断我是否应该回答我自己的问题.我觉得这对面临类似问题的人非常有用,所以如果这不是本网站的正确礼仪,我会道歉(回答你自己的问题).

现在,我偶然发现试图找到解决这个问题的方法,经过反复试验我已经成功了.因此,一旦您在项目中下载并设置了ActionBarSherlock SDK,请创建将包含微调器的布局:

<com.actionbarsherlock.internal.widget.IcsSpinner
            android:id="@+id/spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/title"
            android:layout_margin="10sp"
            android:layout_centerHorizontal="true"
            android:textSize="18sp" />

上面的代码将使用ActionBarSherlock库中的微调器的ICS版本.接下来,在您的Activity声明并实例化(使用强制转换)微调器对象.但请注意,您不使用普通的Spinner类,而是使用ActionBarSherlock库中的IcsSpinner类:

IcsSpinner spinner = (IcsSpinner)findViewById(R.id.spinner);

现在,您可以像创建普通Spinner一样创建适配器,如下所示:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.spinner_item,elements);
spinner.setAdapter(adapter);

最后,您需要设置onItemSelectedListener.这里唯一的主要区别是你使用IcsAdapterView.OnItemSelectedListener而不仅仅是OnItemSelectedListener:

spinner.setOnItemSelectedListener(new IcsAdapterView.OnItemSelectedListener(){
    @Override
    public void onItemSelected(IcsAdapterView<?> parent,View view,int position,long id){
    }
    @Override
    public void onNothingSelected(IcsAdapterView<?> parent){
    }
});

就是这样.它与使用微调器对象真的没什么不同.
虽然很简单,但我花了一些时间才弄明白,所以,我希望这对某人有用.

哦是的,不要忘记使用ActionBarSherlock主题,就像这样(在清单中):

android:theme="@style/Theme.Sherlock"

猜你在找的Android相关文章