安卓下拉框鍵值對

安卓中的下拉框不像html那樣,我們在使用的時候有鍵值對存放的需求 網上查了好多說是需要自定義SpinnerAdapter 

      但是有個方法是不需要的

1:將Key和Value放在一個class中

public class SpinnerArea {
    //這裏將domaincode作爲Key,將domainname作爲Value
    private int domaincode;
    private String domainname;
    
    public SpinnerArea() {
        this.domaincode = 0;
        this.domainname = "";
    }
    public SpinnerArea(int domaincode, String domainname) {
        this.domaincode = domaincode;
        this.domainname = domainname;
    }
    public int getDomaincode() {
        return domaincode;
    }
    public void setDomaincode(int domaincode) {
        this.domaincode = domaincode;
    }
    public String getDomainname() {
        return domainname;
    }
    public void setDomainname(String domainname) {
        this.domainname = domainname;
    }
//這裏纔是重點,將toString的返回值返回value
    @Override
    public String toString() {
        return domainname;
    }
    
}
2:在activity中定義adapter

private ArrayAdapter<SpinnerArea> areadapter;

3:往Adapter中塞值

List<SpinnerArea> spinnerinfo = new ArrayList<SpinnerArea>();
        SpinnerArea sa1 = new SpinnerArea(1,"北京");
        SpinnerArea sa2 = new SpinnerArea(2,"上海");
        spinnerinfo.add(sa1);
        spinnerinfo.add(sa2);
	areadapter =  new ArrayAdapter<SpinnerArea>(this,
 android.R.layout.simple_spinner_item, spinnerinfo);



4:取值

    private OnItemSelectedListener arealistener = new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            SpinnerArea sa = (SpinnerArea)arg0.getAdapter().getItem(position);
            Log.v(TAG, String.valueOf(sa.getDomaincode()));
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }

    };



OK,完成



發佈了33 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章