您的位置:首页 > 其它

Spinner用法小结

2016-01-28 21:20 176 查看

1、从一个Spinner例子来分析

1、布局XML文件

只有一个简单的TextView和Spinner。

2、源码

public class MainActivity extends Activity {

private Spinner spinner;
private TextView mtext;
private ArrayAdapter<CharSequence> adapter;
private static final String[] city = {"北京","上海","广州","深圳"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mtext = (TextView) findViewById(R.id.textView);
spinner=(Spinner)this.findViewById(R.id.spinner);
//将内容与ArrayAdapter连接起来  。R.layout.spinnerlayout为自定义形式。
adapter=ArrayAdapter.createFromResource(this,R.array.cities,R.layout.spinnerlayout);
//设置下拉列表的风格
adapter.setDropDownViewResource(R.layout.spinnerlayout);
//将adapter 添加到spinner中
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new SpinnerXMLSelectedListener());
}

//spinner 监听事件
class SpinnerXMLSelectedListener implements OnItemSelectedListener{
public void onItemSelected(AdapterView<?> arg0, View arg1, int position,
long arg3) {
mtext.setText("居住地为:"+adapter.getItem(position));
}

public void onNothingSelected(AdapterView<?> arg0) {

}

}


3、资源内容

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name = "app_name">Spinner</string>
<string name = "action_settings"> settings</string>
<string name = "spin_prompt"> 请选择城市</string>
<string-array name = "cities">
<item>北京</item>
<item>上海</item>
<item>广州</item>
<item>深圳</item>
</string-array>

</resources>


4、自定义的Spinner显示样式和下拉UI样式(共用一个)

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textColor="#FF8B1500"
android:gravity="center" />


2、代码分析

1、使用数组填充Spinner数据:

如果使用数组填充的话,原文中:

adapter=ArrayAdapter.createFromResource(this,R.array.cities,R.layout.spinnerlayout);


替换为:

adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,city);


R.layout.simple_spinner_item是安卓系统自带的spinner样式。

类似的,
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
中simple_spinner_dropdown_item是android系统自带下拉的样式。

2、Spinner 用法和几个特殊属性

1、获取Spinner选中文本

mySpinner.getSelectedItem().toString()或者通过对应的adapter的getItem(position)方法获取

2、特殊属性

spinnerMode=dropdown时,为下拉模式,默认为此模式。

spinnerMode=dialog时,会在界面中间弹出 。

android:prompt=”@string/XXX” 。该属性定义弹出框的标题,只有在spinnerMode=dialog时才起作用。

android:popupBackground=”#f0000000”,可以去除spinner的默认黑边

android:dropDownVerticalOffset和android:dropDownHorizontalOffset都是改变下拉框位置的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: