Spinner详解

来源:互联网 发布:百度卫士软件管理 编辑:程序博客网 时间:2024/06/16 05:09

Spinner详解

ONE Goal,ONE Passion!

Spinner下拉列表使用的不是太多,也很简单,不过当使用网络数据拉去去填充是还是可能出一些错误.一起来看看可能出现的错误吧.

spinner使用起来有2点需要注意的,spinner中数据的填充有两种

  • 使用android:entries属性在xml中指定.
  • 通过代码 mspinner.setAdapter();去填充

第1种: 直接在资源文件中写下拉项

a.定义array数组资源: 在valuse中定义

<resources>    <string-array name="spinnername">        <item>北京</item>        <item>上海 </item>        <item>广州</item>        <item>深圳</item>    </string-array></resources>

b.代码中使用:

public class SpinnerActivity extends Activity {    Spinner spinner;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_spinner);        spinner = (Spinner) findViewById(R.id.spinner);   //选择监听        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {                String str = parent.getItemAtPosition(position).toString();                System.out.println("点击的时----" + str);            }            @Override            public void onNothingSelected(AdapterView<?> parent) {            }        });    }}

效果图如下:这里写图片描述

第2种: 通过集合中的数据为数组赋值

多用于从网络拉取出数据.

主要代码:

 private String[] items;   用于存放显示的下拉项 int size = list.size();   // 集合的长度 //将集合中需要展示为下拉项的内容放入数组. items = new String[size];for(int i=0;i< list.size();i++){//不能写成i<= list.size()     items[i] = list.get(i).getXXX(); }mItems[i] = "要向数组某个位置中存储的数据"; //即items // 建立数据源,   (如果xml中没有使用android:entries属性,则使用代码去填充)        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);        //设置spinner的监听        mspinner.setOnItemSelectedListener(new OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> parent, View view,                    int position, long id) {                 String                  str=parent.getItemAtPosition(position).toString();            }            @Override            public void onNothingSelected(AdapterView<?> parent) {                // TODO Auto-generated method stub            }        });    }

ok! spinnner的使用就结束了.

0 0
原创粉丝点击