android如何创建spinner组件,Android的Spinner控件用法解析

微调框

微调框提供一种方法,让用户可以从值集中快速选择一个值。默认状态下,微调框显示其当前所选的值。 触摸微调框可显示下拉菜单,其中列有所有其他可用值,用户可从中选择一个新值。

您可以使用 Spinner 对象向您的布局中添加一个微调框。通常应在 XML 布局中使用 元素来执行此操作。 例如:

android:id="@+id/planets_spinner"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

要使用选择列表填充微调框,还需要在 Activity 或 Fragment 源代码中指定 SpinnerAdapter。

使用用户选择填充微调框

您为微调框提供的选择可来自任何来源,但必须通过 SpinnerAdapter 来提供,例如,如果选择可通过数组获取,则通过 ArrayAdapter)来提供,如果选择可通过数据库查询获取,则通过 CursorAdapter 来提供。

例如,如果预先确定了微调框的可用选择,则可通过字符串资源文件中定义的字符串数组来提供这些选择。

Mercury

Venus

Earth

Mars

Jupiter

Saturn

Uranus

Neptune

对于上例所示数组,可在 Activity 或 Fragment 中使用以下代码,以使用 ArrayAdapter 实例为微调框提供该数组。

Spinner spinner = (Spinner) findViewById(R.id.spinner);

// Create an ArrayAdapter using the string array and a default spinner layout

ArrayAdapter adapter = ArrayAdapter.createFromResource(this,

R.array.planets_array, android.R.layout.simple_spinner_item);

// Specify the layout to use when the list of choices appears

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// Apply the adapter to the spinner

spinner.setAdapter(adapter);

createFromResource() 方法允许从字符串数组创建 ArrayAdapter。 此方法的第三个参数是布局资源,其定义所选选择如何显示在微调框控件中。 simple_spinner_item 布局由平台提供,是默认布局,除非您想为微调框外观定义自己的布局,否则应使用此布局。

然后,应调用 setDropDownViewResource(int) 指定适配器应用于显示微调框选择列表的布局(simple_spinner_dropdown_item 是平台定义的另一标准布局)。

调用 setAdapter() 以将适配器应用到 Spinner。

响应用户选择

当用户从下拉菜单中选择一个项目时,Spinner 对象会收到一个 on-item-selected 事件。

要为微调框定义选择事件处理程序,请实现 AdapterView.OnItemSelectedListener 接口以及相应的 onItemSelected() 回调方法。例如,以下是 Activity 中的一个接口实现:

public class SpinnerActivity extends Activity implements OnItemSelectedListener {

...

public void onItemSelected(AdapterView> parent, View view,

int pos, long id) {

// An item was selected. You can retrieve the selected item using

// parent.getItemAtPosition(pos)

}

public void onNothingSelected(AdapterView> parent) {

// Another interface callback

}

}

AdapterView.OnItemSelectedListener 需要 onItemSelected() 和 onNothingSelected() 回调方法。

然后,您需要调用 setOnItemSelectedListener() 来指定接口实现:

Spinner spinner = (Spinner) findViewById(R.id.spinner);

spinner.setOnItemSelectedListener(this);

如果您使用 Activity 或 Fragment 来实现 AdapterView.OnItemSelectedListener 接口(如上例),则可以传递 this 作为接口实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Spinner控件是一个下拉列表框,它允许用户从预定义的选项中选择一个值。可以使用ArrayAdapter或CursorAdapter设置Spinner选项。以下是Spinner的一种使用方法: 1. 在XML布局文件中定义Spinner控件: ``` <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:entries="@array/planets_array" /> ``` 2. 在Java代码中获取Spinner控件的引用,设置适配器和监听器: ``` Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String item = parent.getItemAtPosition(position).toString(); Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); ``` 3. 在res/values/strings.xml文件中定义Spinner选项: ``` <resources> <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> ``` 以上就是Android Spinner控件的一种使用方法,可以根据具体需求进行适当调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值