当所选项目发生变化时,如何为微调器设置事件侦听器?
基本上我想做的是类似这样的事情:
spinner1.onSelectionChange = handleSelectionChange;
void handleSelectionChange(Object sender){
//handle event
}
当所选项目发生变化时,如何为微调器设置事件侦听器?
基本上我想做的是类似这样的事情:
spinner1.onSelectionChange = handleSelectionChange;
void handleSelectionChange(Object sender){
//handle event
}
当前回答
找到你的微调器名称和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
}
});
其他回答
找到你的微调器名称和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
}
});
我发现的一个技巧是把你的setOnItemSelectedListeners放在onWindowFocusChanged而不是onCreate中。我还没有发现这样做有任何副作用。基本上,在窗口绘制之后设置侦听器。我不确定onWindowFocusChanged运行的频率,但如果你发现它运行得太频繁,创建一个锁变量是很容易的。
我认为Android可能会使用基于消息的处理系统,如果你把它都放在onCreate中,你可能会遇到旋转器在它被绘制后被填充的情况。你的监听器会在你设置项目位置后启动。当然,这是一个有根据的猜测,但请随意纠正我。
spinner1.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
//add some code here
}
);
这是可行的 初始化旋转器和findviewbyid并使用它将工作
Spinner schemeStatusSpinner;
schemeStatusSpinner = (Spinner) dialog.findViewById(R.id.spinner);
schemeStatusSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
if(schemeStatusSpinner.getSelectedItemId()==4){
reasonll.setVisibility(View.VISIBLE);
}
else {
reasonll.setVisibility(View.GONE);
}
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
Spinner spnLocale = (Spinner)findViewById(R.id.spnLocale);
spnLocale.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
// Your code here
}
public void onNothingSelected(AdapterView<?> adapterView) {
return;
}
});
注意:记住一件事。
OnItemSelectedListener事件将执行两次:
旋转器初始化 手动选择的用户
试着用标志变量来区分这两者。