Android的微调 - onItemSelected / setOnItemSelectedListener没有触发 [英] Android Spinner - onItemSelected / setOnItemSelectedListener not triggering
问题描述
这是因为这件事情我已经做过我发疯,但想不通为什么它现在没有工作......
This is driving me nuts since it's something I've done before but can't figure out why it isn't working now...
我有一个菜单按钮,通过 menu.xml文件
文件和 onOptionsItemSelected
法中有一个开关,创建并显示一个微调。
I've got a menu button, implemented in the usual way via a menu.xml
file and the onOptionsItemSelected
method with a switch in it, that creates and displays a spinner.
我已经添加了 setOnItemSelectedListener
,但它似乎永远不会触发。在微调的出现,我挑一个选项或回退,既不 onItemSelected
或 onNothingSelected
被调用。
I've added the setOnItemSelectedListener
, but it never seems to trigger. The spinner appears, I pick an option or back out, neither onItemSelected
or onNothingSelected
are called.
下面是所有的案例的code和回归真正的菜单键处理switch语句。 ( topThis
是一个变量指的是活动的背景 - 在应用程序中的所有其他敬酒正常工作)
Here is all the code between the "case" and "return true" of the menu-button-handling switch statement. (topThis
is a variable referring to the context of the activity - works fine for all other toasts in the app)
String[] widgetModes = {"Mode 1", "Mode2"};
ArrayAdapter<String> widgetModeAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, widgetModes);
widgetModeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner widgetModeSpinner = new Spinner(this);
widgetModeSpinner.setAdapter(widgetModeAdapter);
widgetModeSpinner.setPrompt("Choose Widget Mode");
widgetModeSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
{
Toast.makeText(topThis, "derp", Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parentView)
{
Toast.makeText(topThis, "herf", Toast.LENGTH_LONG).show();
}
});
widgetModeSpinner.performClick();
任何想法?我隐约怀疑,其实我创建了微调
编程的问题...
Any ideas? I vaguely suspect that the fact I'm creating the Spinner
programmatically is the problem...
推荐答案
我有类似的问题时,我正在执行一个微调,我解决它通过让家长查看和设置适配器 -
I had the similar problem when I was implementing a spinner, I resolved it by getting the parent View and set Adapter-
spinner1 =(Spinner)findViewById(R.id.spinner1);
spinner1.setAdapter(BindSpinner("ProgramMaster",cols,null,true,""));
spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
{
protected Adapter initializedAdapter=null;
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
{
if(initializedAdapter !=parentView.getAdapter() ) {
initializedAdapter = parentView.getAdapter();
return;
}
String selected = parentView.getItemAtPosition(position).toString();
if(abc.equals("Select") && !selected.equals("Select"))
{
do something
}
else
{
Do something
}
textQualification=selected;
SearchUpdated("Qualification");
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
这篇关于Android的微调 - onItemSelected / setOnItemSelectedListener没有触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!