Android控件之Spinner
2014-08-10 18:45
190 查看
ArrayAdapter
<span style="font-size:18px;">// 初始化控件 mSpinner = (Spinner) findViewById(R.id.spinner1); // 建立数据源 String[] mItems = getResources().getStringArray(R.array.spinnername); // 建立Adapter并且绑定数据源 ArrayAdapter<String> _Adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, mItems); //绑定 Adapter到控件 mSpinner.setAdapter(_Adapter);</span>
自定义Adapter
创建每一项的布局文件
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/item_linearlayout" android:orientation="horizontal" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/tv_large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/tv_small" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </LinearLayout> </LinearLayout></span>
创建数据源
<span style="font-size:18px;">package com.example.spinnertest; public class Student { private String name; private String sex; private int age; public Student() { super(); // TODO Auto-generated constructor stub } public Student(String name, String sex, int age) { super(); this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }</span>
自定义适配器
<span style="font-size:18px;">package com.example.spinnertest; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView; public class MyAdapter extends BaseAdapter { private List<Student> studentList; private Context context; public MyAdapter(List<Student> studentList, Context context) { super(); this.studentList = studentList; this.context = context; } @Override public int getCount() { // TODO Auto-generated method stub return studentList.size(); } @Override public Student getItem(int position) { // TODO Auto-generated method stub return studentList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { LinearLayout linearLayout = null; if (convertView != null) { linearLayout = (LinearLayout) convertView; } else { linearLayout = (LinearLayout) LayoutInflater.from(context).inflate( R.layout.activity_item, null); TextView tv_Name=(TextView) linearLayout.findViewById(R.id.tv_large); TextView tv_Sex=(TextView) linearLayout.findViewById(R.id.tv_small); tv_Name.setText(studentList.get(position).getName()); tv_Sex.setText(studentList.get(position).getSex()); } return linearLayout; } }</span>
绑定数据并添加监听事件
<span style="font-size:18px;">package com.example.spinnertest; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Toast; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Spinner; public class MainActivity extends Activity { private Spinner spinner; private List<Student> students = new ArrayList<Student>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spinner); this.spinner = (Spinner) findViewById(R.id.view_spinner); students.add(new Student("张三", "男", 18)); students.add(new Student("李四", "男", 20)); students.add(new Student("王五", "女", 19)); MyAdapter adapter = new MyAdapter(students, this); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this, students.get(position).getName(), Toast.LENGTH_SHORT) .show(); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } }); } }</span><span style="font-size:24px;"> </span>
运行结果示意
相关文章推荐
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView
- Android控件之Spinner探究
- Android下拉框控件Spinner的使用
- Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronomete
- Android Spinner控件
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chronometer, ScrollView
- android控件14 Spinner
- 【android开发】 修改控件Spinner内容的字体大小 颜色等属性
- Android--自定义带点击事件监控的Spinner控件
- Android Spinner控件
- Android UI控件Spinner控件的学习
- Android控件开发之Spinner
- Android控件之Spinner探究
- 【android基础学习之四】——基础控件CheckBox,Spinner,AutoCompleteTextView,DatePicker,TimePicker
- Android 控件之Spinner
- Android精简小笔记(9):Spinner的用法(下拉选项控件):
- Android[初级教程]第四篇 Spinner控件
- Android学习--Spinner控件学习
- Android下拉框控件Spinner的使用