android spinner 改变事件,AndroidSpinner:获取所选的项目更改事件

如何在所选项目更改时为Spinner设置事件侦听器?

基本上我想要做的是类似于这样的事情:

spinner1.onSelectionChange = handleSelectionChange;

void handleSelectionChange(Object sender){

//handle event

}

#1楼

我发现的一个技巧是将你的setOnItemSelectedListeners放在onWindowFocusChanged而不是onCreate。 我没有发现这样做的任何不良副作用。 基本上,在绘制窗口后设置监听器。 我不确定onWindowFocusChanged运行的频率是多少,但如果您发现它经常运行,那么创建自己的锁变量就很容易了。

我认为Android可能正在使用基于消息的处理系统,如果你把它全部放在onCreate中,你可能会遇到微调器在绘制之后被填充的情况。 因此,在设置项目位置后,您的听众将会启动。 当然,这是一个有根据的猜测,但请随时纠正我。

#2楼

spinner1.setOnItemSelectedListener(

new AdapterView.OnItemSelectedListener() {

//add some code here

}

);

#3楼

找到您的微调名称并找到ID然后实现此方法。

spinnername.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView parentView, View selectedItemView, int position, long id) {

// your code here

}

@Override

public void onNothingSelected(AdapterView parentView) {

// your code here

}

});

#4楼

您可以在Activity中实现AdapterView.OnItemSelectedListener类。

然后使用onCreate()的以下行

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

spin.setOnItemSelectedListener(this);

然后覆盖这两个方法:

public void onItemSelected(AdapterView parent, View v, int position, long id) {

selection.setText(items[position]);

}

public void onNothingSelected(AdapterView parent) {

selection.setText("");

}

#5楼

spinner-widget的文档说

微调器不支持项目单击事件。

您应该使用setOnItemSelectedListener来处理您的问题。

文章来源: www.oschina.net,作者:技术盛宴,版权归原作者所有,如需转载,请联系作者。

原文链接:https://my.oschina.net/stackoom/blog/3166166

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值