---恢复内容开始---

一、前段代码

<Spinner    android:id="@+id/spin"    android:paddingTop="10px"    android:layout_width="fill_parent"    android:layout_height="50sp"/><Button    android:id="@+id/addList"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="添加" />

二、接下来新建一个下拉列表的视图资源,即每个Item的TextView,我们把它命名为dropdown.xml,我们把它放到drawable中,代码为:

<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/tv1"    android:layout_width="fill_parent"    android:layout_height="20sp"    android:singleLine="true"    style="?android:attr/spinnerDropDownItemStyle"    />

三、创建Adapter

这里介绍下两个函数:

1.ArrayAdapter.ArrayAdapter(Context context,int textViewResourcId,List<String> objects)

我们可以通过它创建新的Adapter对象,这里需要三个参数:

(1)context上下文关系,就是这个Adapter属于哪个Activity,属于哪个应用程序。

(2)textViewResourcId TextView的资源id

(3) 最后一个参数是你要向下拉列表中添加的数据,可以是一个静态的String数组,也可以是一个动态的List<String>;

2.AdapterView.setOnItemSelectedListener(OnItemSelectedListener listener),使用这个方法为Spinner对象设置监听器。这里参数是OnItemSelectedListener 接口,实现这个接口需要重写两个方法:

(1)public void onItemSelected(AdapterView<?> parent, View view,int position, long id)

这个方法中可以完成当选项被选中时要做的处理。四个参数的含义:

  • AdapterView<?> parent,这个类似context,只是范围比较下,指你当前操作的AdapterView
  • View view ,这个参数是你具体单击的那个TextView对象
  • int position 这个参数的意思是你单击的那个view在整个AdaterView中的位置
  • long id 单击view的id

(2)public void onNothingSelected(AdapterView<?> parent)

这个回调函数在AdapterView中没有选项时调用。

完整代码如下:

    private Spinner spinner;    private TextView tv;    private ArrayAdapter<String> adapter;    private static final String[] years = { "小于1年", "1年-3年", "3年-5年", "5年以上" };    private ArrayList<String> array = new ArrayList<String>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        if (savedInstanceState == null) {            getSupportFragmentManager().beginTransaction()                    .add(R.id.container, new PlaceholderFragment()).commit();        }        spinner = (Spinner) findViewById(R.id.spin);        tv = (TextView) findViewById(R.id.textView1);        for (int i = 0; i < years.length; i++) {            array.add(years[i]);        }        adapter = new ArrayAdapter<String>(this,                android.R.layout.simple_spinner_item, array);        adapter.setDropDownViewResource(R.drawable.dropdown);                spinner.setAdapter(adapter);        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view,                    int position, long id) {                // TODO 自动生成的方法存根                String seleted = array.get(position);                tv.setText(seleted);                parent.setVisibility(View.VISIBLE);            }            @Override            public void onNothingSelected(AdapterView<?> arg0) {                // TODO 自动生成的方法存根                tv.setText("您没有选择");            }        });

---恢复内容结束---

更多相关文章

  1. Android(安卓)SDK4.0离线快速安装方法
  2. Android与Unity交互研究
  3. Android多进程之Binder的使用
  4. Android的UI书写的四种方法
  5. android 让一个控件按钮居于底部的几种方法
  6. Android热更新九:Robust热更新原理
  7. Android热更新二:理解Java反射
  8. Android消息机制浅析——原理探究
  9. TextView跑马灯效果

随机推荐

  1. Android小代码——设置全屏
  2. Android 获取电池电量
  3. 控件_AnalogClock
  4. Android中RadioGroup RadioButton CheckB
  5. 【Android】Activity与服务Service绑定
  6. android手机短信总结
  7. Head Fisrt Android Development读书笔记
  8. 学习android的博客
  9. Android - 开发常用工具类Utils
  10. Android Studio中的mipmap和drawable