
在安卓客户端需要添加下拉框,供用户选择他们需要填写的选项。
如果使用资源文件把选项写死的话,只有text一种形式可选,局限太大,因此如果要实现 value - text 这种形式的话,需要单独写一个类 SpinnerOptionjava 。
1 布局文件
<Spinnerandroid:id="@+id/town_sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
2 下拉框选项实体 SpinnerOptionjava,在Spinner中显示选项的时候,默认会显示每个项(Object)的 toString() 之后的内容,因此重写 toString() 方法,让它输出 text 。
public class SpinnerOption {private String value = "";
private String text = "";
public SpinnerOption() {
value = "";
text = "";
}
public SpinnerOption(String value, String text) {
thisvalue = value;
thistext = text;
}
@Override
public String toString() {
return text;
}
public String getValue() {
return value;
}
public String getText() {
return text;
}
}
3 Fragment中:
ArrayList<SpinnerOption> towns;
//准备好下拉框内容
towns = new ArrayList<SpinnerOption>();
for (int i = 0; i < 18; i++) {
SpinnerOption c = new SpinnerOption(i + "", i + " 镇");
townsadd(c);
}
townSp = (Spinner)viewfindViewById(Ridtown_sp);
//设置Adapter
ArrayAdapter<SpinnerOption> townAdapter = new ArrayAdapter<SpinnerOption>(getActivity(),androidRlayoutsimple_spinner_item, towns);
townAdaptersetDropDownViewResource(androidRlayoutsimple_spinner_dropdown_item);
townSpsetAdapter(townAdapter);
//取下拉框的值
postDataput("townId", ((SpinnerOption)townSpgetSelectedItem())getValue());
在取值时要注意,getSelectedItem()得到的是笼统的Object对象而已,还需要把它转换类型为SpinnerOption类才能取值。
完成之后的效果:
如果你想用spinner的话建议自己定义adapter那个封装好的arrayAdapter不灵活,太恶心了,如果你自定义adapter的话,我感觉就没啥难度了,直接List <Object>list = new ArrayList<Obejct>();那个object就是一个类似于bin的类,你可以通过setValue(),和 setId();把你的值set进去,然后你在选择spinner时就可以拿到下标一般为arg2,然后通过list拿出数据,在getId(),就ok了。
其实实现方式有很多,我之前从网上学到一种取巧的办法,你可以试下。
首先定义这么一个类,作用类似Map那种键值对(get/set方法加不加都行)
class Item{public String key;
public String value;
public void Item(String key, String value){
thiskey = key;
thisvalue = value;
}
//重写toString方法,关键
public String toString(){
//返回的是你表面上想显示的值
return key;
}
}
然后就是一一实例化Item并赋值,在装进一个ArrayList<Item>, 以你这个情况举例,就是
ArrayList<Item> array = new ArrayList<Item>();arrayadd(new Item("瓷砖",1111));
arrayadd(new Item("灯具",2222));
剩下就和平时一样,把ArrayAdapter与这个ArrayList绑定,再把Spinner和ArrayAdapter绑定就行,最后显示出的就是key的值。而要获得value的值也很简单,监听事件里这么写就行
SpinnersetOnItemSelectedListener(new OnItemSelectedListener() {@Override
public void onItemSelected(AdapterView<> arg0, View arg1,int arg2, long arg3) {
//获取key
arrayget(arg2)name;
//获取value
arrayget(arg2)value;
}
public void onNothingSelected(AdapterView<> arg0) {}
});
以上就是关于Android Java文件中获取下拉菜单的中用户选择的值 求大佬全部的内容,包括:Android Java文件中获取下拉菜单的中用户选择的值 求大佬、android spinner 控件 怎么 把显示的数据与选择之后的值分开、Android开发,spinner处理和调用函数的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)