您的位置:首页 > 移动开发 > Android开发

android学习之下拉列表Spinner使用

2012-04-21 00:43 423 查看
Spinner的使用

Spinner在普通状态下不会将所有的选项展示在界面上,只有当其被单击后才显示,这样就减少了组建在界面中占用的面积,从而使得界面布局更加灵活

常用属性和方法:

属性:                               方法
说明

Android:entries  
设置选项

  getCount()
获取选项总数

setOnItemClickListener(AdapterView.OnItemClickListenerl)
  注册单击监听器,当选项不支持单击事件时,将会抛出异常

setOnItemSelectedListener(AdapterView.OnItemSelectedListenerl)
注册选择监听器

setAdapter(SpinnerAdapter adapter)
设置数据适配器

setSelection(intposition)
设置被选中的选项

 

android:pormpt

setPromptId(intpromptId)
设置选项标题

建立一个Spinner的步骤:

1.      在布局文件当中声明Spinner控件

2.      在Strings.xml当中声明一个数组

3.      创建一个ArrayAdapter

4.      得到Spinner对象,并设置数据

5.      创建一个监听器

6.      绑定监听器

主界面布局资源代码main.xml(res/layout/main.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Spinner
android:id="@+id/spinnerId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>

Spinner选项的代码资源string.xml(res/values/strings.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">SpinnerTest</string>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>


主界面MainActivity代码:

package com.hjx.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MainActivity extends Activity {
/** Called when the activity is first created. */

private Spinner spinner=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

spinner=(Spinner)findViewById(R.id.spinnerId);
//通过createFromResource方法创建一个ArrayAdapter对象
//第一个参数是上下文对象
//第二个参数应用在string.xml文件当中定义的String数组
//第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可以替换为自己定义的布局文件

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.planets_array, android.R.layout.simple_spinner_item);
//设置Spinner当中每个条目的样式,同样是引用一个Android系统提供的布局文件
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setPrompt("测试");
spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());

}
class SpinnerOnSelectedListener implements OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> adpaterView,View view, int position, long id) {
String selected =adpaterView.getItemAtPosition(position).toString();
System.out.println(selected);
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// nothing to do
System.out.println("NothingSelected");
}
}
}

运行效果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息