Spinner就是html里面的select,下拉列表,比如国家,省份,城市列表,面额选项等等,这个也是使用的非常广泛的widget,我习惯叫控件,可能之前做Asp.net的缘故。这个没什么理论介绍,直奔主题,开始我们的范例。
第一步:设计页面spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignLeft="@+id/spinner1" android:layout_marginTop="48dp" android:id="@+id/tvFruit" android:text="@string/fruit"></TextView>
<Spinner android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/tvFruit" android:layout_marginTop="19dp" android:id="@+id/spinnerFruit" android:layout_alignParentRight="true" android:layout_alignParentLeft="true"></Spinner>
</RelativeLayout>
使用系统自带的页面android.R.layout.simple_spinner_dropdown_item
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />
第二步:设计我们的数据源
res/values/array.xml里面添加
<string-array name="fruit">
<item>苹果</item>
<item>香蕉</item>
<item>橘子</item>
<item>椰子</item>
<item>柿子</item>
<item>红提</item>
<item>芒果</item>
<item>猕猴桃</item>
<item>水蜜桃</item>
<item>西瓜</item>
</string-array>
第三步:设计activity, SpinnerActivity.java
/**
*
*/
package Test.HelloWorld;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
/**
* @author zhuzhifei
*
*/
public class SpinnerActivity extends Activity {
void showToast(CharSequence msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//选择页面
setContentView(R.layout.spinner);
//找到spinner
Spinner myspinner = (Spinner) findViewById(R.id.spinnerFruit);
//组装适配器
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.fruit, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
myspinner.setAdapter(adapter);
//选中某个选项后,添加事件
myspinner.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent, View view, int position, long id) {
showToast("您选择的水果是:" +((TextView)view).getText());
}
public void onNothingSelected(AdapterView<?> parent) {
showToast("您没有做任何选择");
}
});
}
}
第四步:AndroidManifest.xml菜单里面加入我们的activity
<activity android:name=".SpinnerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
第五步:运行效果
android开发步步为营之41:spinner的用法
