Android中簡單實現Spinner的資料繫結

來源:互聯網
上載者:User

 

     Spinner在android中通常用來實現下拉式清單,但可惜的是Spinner沒有直接實作類別似text-value這樣的自動綁定功能。某些情況下,列表展示的文本並不是我們想要取得的值,這樣就需要手動實現資料繫結。首先用2個數組來分別表示顯示的文本和要取的值,代碼如下:

    private final static String[] texts = {"張三", "李四", "王五"};    private final static int[] values = {1, 2, 3};    private Spinner spinner;      private ArrayAdapter<String> adapter;

  這裡texts是下拉式清單中顯示的文本,values是根據列表選定後指定的值。接著就是實現Spinner了,代碼如下:

        spinner = (Spinner)findViewById(R.id.spinner);          //綁定要顯示的texts         adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, texts);                    //設定下拉式清單的風格         
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new SpinnerSelectedListener()); spinner.setVisibility(View.VISIBLE); class SpinnerSelectedListener implements OnItemSelectedListener{ public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { //利用數組中的對應位置取得values中需要的值 int Id = values[arg2]; } } }

    另外,也可以用spinner.getSelectedItem().toString()來取得選定的文本,或者用spinner.getSelectedItemPosition()來取得選定文本的位置,從而可以用values[spinner.getSelectedItemPosition()]來取得對應的值。

    如果你的列表資料是動態獲得的。可以使用ArrayList代替數組來動態添加。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.