且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

android:spinner

更新时间:2022-09-16 20:09:25

Spinner的基本可以参考这里:AndroidGUI03:Spinner的常用技巧

 

update:

项目中有一个界面是要用到spinner的选择然后自动reload ListView的,一开始在onCreate时人为加上listView.setAdapter()来加载数据,现在发现没必要,我spinner 的onItemSelected方法中也有listView.setAdapter() (使用此来出现加载),调试时发现,数据加载了两次,原来在初始时,如果你有spinner,系统会自动调用onItemSelected(并且以第一项为初始),导致与我onCreate的load 重复。

 

update:

想实现一个在之前的listview 的item选定之后跳到View2之后,跳回来的时候listview还是跳之前的spinner对应的item的数据。一开始只是在onItemSelected中把textView的字改掉,然后实现加载时把加载的position也改掉,很快发现这只是一直伪做法,spinner中的选择项显示肯定是没变化的。现在发现android有一个spinner.setSelection(n,true)来选择选定项,使用这个即可。

之前发现适配完数据后会默认选中第一个,并且这个默认选中第一个的操作并不是马上执行的,而是一段时候后再执行,并触发OnItemSelectedListener事件。可是如果你 使用spinner.setSelection(2,true);之后,系统在初始时就不会执行onItemSelected了。

[Android]为Spinner填充数据后设置默认值的问题

 

 

updata:

发现:
初始时系统调不调用onItemSelected和你setOnItemSelectedListener(this); setSelection(spinnerItem, true);的顺序有关:

 

//调用onItemSelected

spinner.setOnItemSelectedListener(this);
spinner.setSelection(spinnerItem, true);

 

两句调换则不会调用onItemSelected

本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2012/06/01/2529389.html,如需转载请自行联系原作者