上传Spinner填充数据对应代码

来源:互联网 发布:淘宝云客服在哪里找 编辑:程序博客网 时间:2024/05/16 06:49

有时候Spinner空间显示的较长的文本信息,但是保存到后台的是对应的一个代码。这个时候需要做好文本信息和代码的对应。使用二维数组作为数据源使用ArrayAdapter来加载。

1、新建CodeArrayAdapter

public class CodeArrayAdapter<T extends CodeBean> extends ArrayAdapter<T> {    /**     * 构造函数     *      * @param context     * @param textViewResourceId     * @param objects     */    public CodeArrayAdapter(Context context, int textViewResourceId, T[] objects) {        super(context, textViewResourceId, objects);    }    /**     * 根据编码获取position     *      * @param code     * @return     */    public int getPositionByCode(String code) {        for (int i = 0; i < getCount(); i++) {            CodeBean item = (CodeBean) getItem(i);            if (item.getCode().equals(code))                return i;        }        return -1;    }    /**     * 根据名称获取position     *      * @param mc     * @return     */    public int getPositoinByMC(String mc) {        for (int i = 0; i < getCount(); i++) {            CodeBean item = (CodeBean) getItem(i);            if (item.getMC().equals(mc))                return i;        }        return -1;    }}

2、泛型CodeBean

public class CodeBean implements Serializable{private static final long serialVersionUID = -7060210544600464481L;     public static final String TAG="CodeBean";    /*     * added by zhaosong on 2013.07.02     */    public  CodeBean(String c,String mc)    {        code=c;        MC=mc;    }    public CodeBean()    {    }    private String code; //代码    private String MC; //名称    public String getCode() {        return code;    }    public void setCode(String code) {        this.code = code;    }    public String getMC() {        return MC;    }    public void setMC(String mC) {        MC = mC;    }//增加空值处理,有数据是用分号分隔,否则显示为空    public String toString() {        if(code.compareTo("")!=0)            return MC;        else            return "";    }}

3、建立数据源

public class Housedata {    /**     *  房屋性质 codebean     */    public static CodeBean[] Lease_state = new CodeBean[]{          new CodeBean("1",  "非出租屋"),         new CodeBean("2",  "出租"),          new CodeBean("3",  "待租"),            };      }

2、加载数据

spLeaseState = (Spinner) findViewById(R.id.Spinner_state);CodeArrayAdapter<CodeBean> adapter = new CodeArrayAdapter<CodeBean>(MainActivity.this, android.R.layout.simple_spinner_item,Housedata.Lease_state);spLeaseState.setAdapter(adapter); //加载数据spLeaseState.setSelection(0);// 默认

3、获取选择的文本对应的代码

((CodeBean) spLeaseState.getItemAtPosition(spLeaseState                .getSelectedItemPosition())).getCode()
0 0
原创粉丝点击