我有一个侦听器来显示Toast消息,当用户单击微调器并选择一个项目时。如何禁用setOnItemSelectedListener(监听器)Toast消息
但是当我以编程方式设置微调器的值时,我想禁用Toast消息。 我该怎么做。
我已经尝试setOnItemSelectedListener(null),然后以编程方式设置微调器的值,然后setOnItemSelectedListener(侦听器)之后 但Toast消息仍显示无论我做什么。
在此先感谢。
这一切都在onCreate btw内完成。我只想在onCreate为微调器设置默认值时禁用Toast消息。
这里是我的听众
private OnItemSelectedListener listener = new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String item = (String) parent.getItemAtPosition(position);
toast = Toast.makeText(getBaseContext(),
Weather.TEMP_DESCRIPTION.get(item), Toast.LENGTH_SHORT);
if (mTemp.getOnItemSelectedListener() != null) {
toast.show();
}
};
public void onNothingSelected(AdapterView<?> parent) {
}
};
和这里就是我在的onCreate()
Bundle extras = getIntent().getExtras();
if (extras != null) {
mTemp.setOnItemSelectedListener(null);
String weather = extras.getString("weather");
String tempStr = extras.getString("temp_str");
if (weather.equals(Weather.UNAVAILABLE)) {
mWeather.setSelection(adapter.getPosition(Weather.ANY_WEATHER));
if (toast != null) {
toast.cancel();
toast.getView().setVisibility(View.INVISIBLE);
toast = null;
}
} else {
mWeather.setSelection(adapter.getPosition(weather));
mTemp.setSelection(tempAdapter.getPosition(tempStr));
if (toast != null) {
toast.cancel();
toast.getView().setVisibility(View.INVISIBLE);
toast = null;
}
}
}
mTemp.setOnItemSelectedListener(listener);
我尝试了很多不同的东西,这就是为什么你看到所有这些怪异的,如果检查,我尝试设置一个布尔在课堂上也是可变的,它也不起作用。
你可以把你的代码放在这里吗? – 2014-12-02 00:27:38
是的,我现在要做的 – 2014-12-02 00:31:19
对不起,但是这段代码很糟糕。你为什么不使用一些对象sarray? fx数组class'w2t {string weather;字符串temp_str; }或者至少你为什么不使用某种字典/地图类,为什么你没有以正常的方式在onitemclick中获取选定的项目:'T item =(T)parent.getItemAtPosition(position);'where T是一个适配器的项目类型... – Selvin 2014-12-02 00:44:48