展开全部
在安卓客户端需要添加下拉框,供用户选择他们62616964757a686964616fe4b893e5b19e31333363396430需要填写的选项。
如果使用资源文件把选项写死的话,只有text一种形式可选,局限太大,因此如果要实现 value - text 这种形式的话,需要单独写一个类 SpinnerOption.java 。
1. 布局文件
android:id="@+id/town_sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
2. 下拉框选项实体 SpinnerOption.java,在Spinner中显示选项的时候,默认会显示每个项(Object)的 toString() 之后的内容,因此重写 toString() 方法,让它输出 text 。public class SpinnerOption {
private String value = "";
private String text = "";
public SpinnerOption() {
value = "";
text = "";
}
public SpinnerOption(String value, String text) {
this.value = value;
this.text = text;
}
@Override
public String toString() {
return text;
}
public String getValue() {
return value;
}
public String getText() {
return text;
}
}
3. Fragment中:ArrayList towns;
//准备好下拉框内容
towns = new ArrayList();
for (int i = 0; i
SpinnerOption c = new SpinnerOption(i + "", i + " 镇");
towns.add(c);
}
townSp = (Spinner)view.findViewById(R.id.town_sp);
//设置Adapter
ArrayAdapter townAdapter = new ArrayAdapter(getActivity(),android.R.layout.simple_spinner_item, towns);
townAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
townSp.setAdapter(townAdapter);
//取下拉框的值
postData.put("townId", ((SpinnerOption)townSp.getSelectedItem()).getValue());
在取值时要注意,getSelectedItem()得到的是笼统的Object对象而已,还需要把它转换类型为SpinnerOption类才能取值。
完成之后的效果: