在项目管理系统android端开发时感觉spinner不好用,至于具体怎么不好用不记得了,可能是样式。于是找到了android nice-spinner 这个组件
开源地址:
https://github.com/arcadefire/nice-spinner
1.在build.gradle中加入
implementation 'com.github.arcadefire:nice-spinner:1.4.5'
2.在布局文件中
<org.angmarch.views.NiceSpinner
android:id="@+id/prioritysp"
style="@style/formline"
android:background="@drawable/headbg" /> <!--这里可以自已定义-->
样式文 件定义
<style name="formline">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">40dp</item>
<item name="android:textColor">@color/content</item>
<item name="android:textSize">@dimen/textSize_14</item>
<item name="android:textAlignment">textStart</item>
<item name="android:layout_marginTop">0.3dp</item>
<item name="android:paddingLeft">25dp</item>
<item name="textTint">@color/content</item>
<item name="android:background">@drawable/headbg</item>
</style>
绑定数据源,这个是官方的示例,他使用的是数组 我们也可以使用实体对象,然后重写toString方法 这样就可以解决需要显示的文本
NiceSpinner niceSpinner = (NiceSpinner) findViewById(R.id.nice_spinner);
List<String> dataset = new LinkedList<>(Arrays.asList("One", "Two", "Three", "Four", "Five"));
niceSpinner.attachDataSource(dataset);
获取定义
prioritySp = (NiceSpinner) findViewById(R.id.prioritysp);
获得选中的索引,可以通过索引再去绑定的数据源中获取 即选中的值
int priorityIndex=prioritySp.getSelectedIndex();