Spinner 绑定 Arraylist .

来源:互联网 发布:flv视频编辑软件 编辑:程序博客网 时间:2024/06/13 14:15
Spinner绑定Arraylist,其实跟ListView绑定Arraylist差不多.
public class Main extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // Create and display a Spinner:        Spinner s = new Spinner(this);        AbsListView.LayoutParams params = new AbsListView.LayoutParams(                ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT        );        this.setContentView(s, params);        // fill the ArrayList:        List<Guy> guys = new ArrayList<Guy>();        guys.add(new Guy("Lukas", 18));        guys.add(new Guy("Steve", 20));        guys.add(new Guy("Forest", 50));        MyAdapter adapter = new MyAdapter(guys);        // apply the Adapter:        s.setAdapter(adapter);        // onClickListener:        s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            /**             * Called when a new item was selected (in the Spinner)             */            public void onItemSelected(AdapterView<?> parent,                                       View view, int pos, long id) {                Guy g = (Guy) parent.getItemAtPosition(pos);                Toast.makeText(                        getApplicationContext(),                        g.getName()+" is "+g.getAge()+" years old.",                        Toast.LENGTH_LONG                ).show();            }            public void onNothingSelected(AdapterView parent) {                // Do nothing.            }        });    }    /**     * This is your own Adapter implementation which displays     * the ArrayList of "Guy"-Objects.     */    private class MyAdapter extends BaseAdapter implements SpinnerAdapter {        /**         * The internal data (the ArrayList with the Objects).         */        private final List<Guy> data;        public MyAdapter(List<Guy> data){            this.data = data;        }        /**         * Returns the Size of the ArrayList         */        @Override        public int getCount() {            return data.size();        }        /**         * Returns one Element of the ArrayList         * at the specified position.         */        @Override        public Object getItem(int position) {            return data.get(position);        }        @Override        public long getItemId(int i) {            return i;        }        /**         * Returns the View that is shown when a element was         * selected.         */        @Override        public View getView(int position, View recycle, ViewGroup parent) {            TextView text;            if (recycle != null){                // Re-use the recycled view here!                text = (TextView) recycle;            } else {                // No recycled view, inflate the "original" from the platform:                text = (TextView) getLayoutInflater().inflate(                        android.R.layout.simple_dropdown_item_1line, parent, false                );            }            text.setTextColor(Color.BLACK);            text.setText(data.get(position).name);            return text;        }    }    /**     * A simple class which holds some information-fields     * about some Guys.     */    private class Guy{        private final String name;        private final int age;        public Guy(String name, int age){            this.name = name;            this.age = age;        }        public String getName() {            return name;        }        public int getAge() {            return age;        }    }}


摘自:<a target=_blank href="http://stackoverflow.com/questions/6562236/android-spinner-databind-using-array-list?rq=1">http://stackoverflow.com/questions/6562236/android-spinner-databind-using-array-list?rq=1</a>

0 0
原创粉丝点击